home *** CD-ROM | disk | FTP | other *** search
/ LSD Docs / LSD Docs.iso / FILEZ / lsd35.dms / lsd35.adf / ProPage3.Suppliment.pp / ProPage3.Suppliment
Text File  |  1990-09-13  |  139KB  |  3,318 lines

  1.                     SNUSKBUSKE (DIRTYBUSH) of DUAL CREW
  2.  
  3.                                  Presents:
  4.  
  5.                   Professional Page 3.0 Supplement Manual
  6.  
  7.  
  8.      OBS!  This is just the Supplement Manual w/ the new functions of
  9.           PPage 3.0 (incl. all ARRex commands) use this with the
  10.                       old 2.1 Docs (if ever released)
  11.  
  12.                   Professional Page 3.0 Supplement Manual
  13.                   ---------------------------------------
  14.  
  15.                              Table of Contents
  16.                              -----------------
  17.  
  18. 1. Introduction                                          1
  19.  
  20. 2. Hard Disk installation                                3
  21.    To Install Professional Page                          3
  22.  
  23. 3. Corrections to Manual                                 5
  24.    Changes to Keyboard Shortcuts                         6
  25.  
  26. 4. Improved Font Support                                 7
  27.    Adobe Type 1 Support                                  7
  28.    Using FontManager                                     7
  29.    Extra Fonts Included                                  9
  30.    Font Size                                             9
  31.  
  32. 5. New Page Design Features                             11
  33.    New Text Wrap Options                                11
  34.    New Text Import Filters                              11
  35.    Professional Draw V3.0 Fountain Fill Supported       12
  36.    Hot-Link to Professional Draw                        12
  37.    Undo                                                 12
  38.  
  39. 6. Improved Printing Capabilities                       15
  40.    Auto-Tiling                                          15
  41.    Improved Color Separation                            15
  42.  
  43. 7. Function Genies                                      17
  44.  
  45.    Executing a Function Genie                           17
  46.    Using the About Button                               17
  47.    Defining & Modifying Function Genies                 18
  48.    Function Genie List Management                       18
  49.    Function Key Genies                                  18
  50.    Unexpected Returns                                   19
  51.    The Supplied Function Genies                         19
  52.       ADProHotLink              GroupMove
  53.       Align                     GroupRotate
  54.       AllCaps                   GroupScale
  55.       AlterBoxesOnPages         GroupSpace
  56.       AutoImport                GroupTile
  57.       AutoSave                  InitialCaps
  58.       BoxAttr                   InsertDoc
  59.       BoxColors                 InsertPersonalInfo
  60.       Calculator                MailMerge
  61.       CommandLine               MakeBoxIntoColumns
  62.       CopyBoxAttributes         MakeGuides
  63.       CopyBoxContents           MovePage
  64.       CopyBoxToPages            NoCaps
  65.       CopyPageSpecs             ProCalcTableImport
  66.       CopyPages                 ProCalcTableUpdate
  67.       DeleteRange               ReplaceMergeCodes
  68.       DropCaps                  SavePrefs
  69.       DropShadowBox             SetPageSize
  70.       EnterPersonalInfo         SmallCaps
  71.       FindAndReplace            StepAndRepeat
  72.       GetTaggedText             SubScript
  73.       GreekBoxes                SubstituteFont
  74.       GroupAttr                 SuperScript
  75.       GroupCopyBoxAttr          TableImport
  76.       GroupCopyBoxContents      UnGreekBoxes
  77.       GroupCopyToPages          UnitsConverter
  78.       GroupDistribute
  79.  
  80. 8. Page Genies                                          33
  81.    Avery Labels                                         33
  82.    Business Report                                      34
  83.    Envelope                                             34
  84.    Full Page Ads                                        34
  85.    Traditional Newsletter                               35
  86.    Two-F old Brochure                                   35
  87.  
  88. 9. ARexx Support and Commands                           37
  89.    Technical Information                                37
  90.    Parameter & Return Information                       38
  91.    Page and Box Identifiers                             38
  92.    ARexx Commands                                       39
  93.  
  94.    General Functions Group Operations
  95.    User Interactive Functions PPage Parameter Settings
  96.    Page Operations Save & Load Operations
  97.    Page Parameters Dot Matrix Printing
  98.    Page PostScript Output Specs PostScript Printing
  99.    Box Operations Thumbnail Printing
  100.    Text Operations
  101.  
  102.  
  103. 1. INTRODUCTION
  104.  
  105. The new features incorporated into Professional Page for version 3.0
  106. offer a dramatic increase in the power of the application. Consequently,
  107. version 3.0 of Professional Page requires the use of a hard disk drive
  108. and two megabytes of RAM. Use of the Genies (which are automated
  109. sequences of operations) requires version 1.15 of ARexx. If you are using
  110. an earlier version of ARexx, you will need to get an updated version or
  111. (better still) Workbench 2.0, which includes ARexx V 1.15 as part of the
  112. operating system.
  113.  
  114. Although some of the new features are targeted at the needs of
  115. professional users, these enhancements offer more power and flexibility
  116. to all users, from the occassional hobbyist to the busy professional.
  117.  
  118. The additional capabilities can be grouped into four general categories:
  119.  
  120.    . Enhanced Font Support
  121.    . New Page Design Tools
  122.    . Improved Printing Capabilities
  123.    . Genies and ARexx Support
  124.  
  125. Some of the changes will be evident immediately upon loading Professional
  126. Page. For example, the Mop Tool has been replaced by the Genie Tool and
  127. the Page Move Tool has been replaced by the Undo Tool. Other changes will
  128. become evident as you begin to use version 3.0. One of the first of these
  129. that you will notice is the inclusion of named pages and boxes. This has
  130. been implemented to allow Genies to access objects by name. All of the
  131. additions and enhancements of Professional Page v3.0 are described in
  132. this addendum.
  133.  
  134.  
  135. 2. HARD DISK INSTALLATION
  136.  
  137. To use version 3.0 of Professional Page, the requisite files must be
  138. installed on your hard drive. Installation is accomplished by running
  139. two programs:
  140. lnstall_PPage and Install_CGFonts. You must run these programs from the
  141. Workbench! Instructions are given below but you may also wish to consult
  142. the HelpInstall program by double-clicking on its icon. If you wish, you
  143. may also print out the HelpInstall information by double-clicking on the
  144. PrintHelp icon.
  145.  
  146. To install Professional Page:
  147. Double-click on your hard drive's icon or on the icon of the partition
  148. onto which you want to install Professional Page. If you wish to install
  149. to a subdirectory or that partition, open the drawer for the desired
  150. subdirectory.
  151.  
  152. Insert the diskette containing the installation files into a floppy drive.
  153. Double-click the disk to open it and drag the icons for Install PPage and
  154. Install_CGFonts into the destination directory's window andclose the
  155. diskette.
  156.  
  157. Double-click the Install PPage icon and the installation will commence.
  158. You will be asked some questions relating to which files you want to
  159. install and, in the case of bitmap fonts, where you would like the files
  160. to be placed. When the installation process is complete, double-click the
  161. Install_CGFonts icon and respond as required.
  162.  
  163. For a general idea of the course of the installation process or to get
  164. more detailed instructions, double-click the HelpInstall icon.
  165.  
  166.  
  167. 3.CORRECTIONS TO MANUAL
  168.  
  169. In this section, we'll cover the corrections and updates to the main
  170. Professional Page manual. The page number of each item is in the margin
  171. to the left of the description. You may wish to mark the affected pages
  172. in the manual.
  173.  
  174. 8 The section entitled Making a Working Copv of Professional Page no
  175.   longer applies since version 3.0 of Professional Page requires a hard
  176.   disk. However, you should still make backup copies of the distribution
  177.   disks.
  178.  
  179. 20 Before undertaking the tutorial, you should first run Preferences to
  180.    set up your printer. Also on this page, it is stated that if the
  181.    program fails to load, it may be because you have only 512K of memory
  182.    and Professional Page requires a megabyte. Version 3.0 of Professional
  183.    Page actually requires two megabytes.
  184.  
  185. 23 At the bottom of the page it is stated that a Save of a newly-created
  186.    document will cause Professional Page to automatically name the
  187.    document "Untitled" and that it will be save to the default directory.
  188.    This is no longer the case. Now, when you select Save for an unnamed
  189.    document, it will function as does Save As. i.e. a file requester will
  190.    appear, allowing you to select the desired directory and specify a
  191.    descriptive name for your document.
  192.  
  193. 24 The section entitled "To clear the document in memory:" states that a
  194.    waiting requester appears when Project/New is selected. In fact, this
  195.    waiting only appears when changes have been made to the document since
  196.    the last Save operation.
  197.  
  198. 25 This page makes reference to a Sort button in a file requester. This
  199.    button has been removed; Professional Page sorts the filenames
  200.    automatically.
  201.  
  202. 26 The discussion of box creation instructs you to place the bottom right
  203.    corner of your box at the 7.5" x 3" position. There is no particular
  204.    significance to this location aside from the suggestion to use the
  205.    ruler line for reference.
  206.  
  207. 27 The second point under "To move a box:" states: "The coordinates of the
  208.    top left comer of the box appear on the right side of the menu strip,.."
  209.    It should read: "...on the left side..."
  210.  
  211. 39 The top line reads: "Click on the first file: NEWSLETTER1.txt".
  212.    This is the correct filename but it is not the first file shown in
  213.    the file requester.
  214.  
  215. 258 The definition of halftone as given on this page is really a
  216.     definition of the onscreen simulation of a halftone. In the printing
  217.     industry, halftone refers to the technique of breaking a continuous-
  218.     tone copy into v arious size dots to make it printable. It is a
  219.     reproduction of an image containing a gradual change from one tone to
  220.     another. When viewed from a normal distance, this collection of dots
  221.     simulates continuous tones.
  222.  
  223. Changes to Keyboard Shortcuts:
  224. There are several new keyboard equivalents in version 3.0 of Professional
  225. Page and one keyboard equivalent has been eliminated. You may wish to make
  226. some notes to this effect on your Quick Reference Card and/or in Appendix
  227. B of the main manual.
  228.  
  229.      . c[ - Box Impermeable Toggle
  230.        This shortcut has been eliminated and the text wrap options (see
  231.        Section 5) now take its place.
  232.  
  233.      . cY - Box Text Wrap Cycle.
  234.        This shortcut will cycle through the three styles of text wrap.
  235.  
  236.      . cW - Text Wrap Side Cycle
  237.        This shortcut will cycle through the text wrap side options.
  238.  
  239.      . A\ - Hot-link to Professional Draw
  240.        This is the shortcut for sending a clip from Professional Page to
  241.        Professional Draw for editing (see Section 5). It is equivalent
  242.        to the new menu selection Draw/PDraw.
  243.  
  244.      . aDEL - Delete Contents
  245.        This is the shortcut for deleting an article (text in a box or
  246.        chain of boxes). It is equivalent to the new menu selection
  247.        Box/Delete Contents which provides the functionality previously
  248.        offered by the Mop Tool.
  249.  
  250.      . cQ - Invoke Page Genies
  251.        This shortcut will initiate page creation via the Page Genie
  252.        facility. It is equivalent to the menu selection
  253.        Page/Create/from Genie.
  254.  
  255.  
  256. 4. IMPROVED FONT SUPPORT
  257.  
  258. Adobe Type 1 Support:
  259. A new utility has been added to the Professional Page package. This
  260. utility, FontManager, is used to convert an Adobe Type 1 font to a
  261. Compugraphic format font. Users of Professional Page may now access the
  262. full Adobe type library. In addition, the Compugraphic output of
  263. FontManager may also be used as system fonts under Workbench 2.0.
  264.  
  265. Using FontManager
  266. To convert an Adobe Type 1 font into a Compugraphic font, two files are
  267. required: the Printer Font Binary file and the Adobe Font metric file.
  268. The Printer Font Binary file contains the actual character outlines and,
  269. when supplied on MS-DOS format disks, these files are generally named
  270. <fontname>.PFB. The Adobe Font Metric file contains information concerning
  271. the placement of characters; i.e., width and kerning data. These files are
  272. generally named <fontname>.AFM on MS-DOS format disks. Both of these files
  273. must be present in FontManager's source directory for each Type 1 that you
  274. want to convert.
  275.  
  276. If you acquire Adobe fonts in a format other than MS-DOS, your font
  277. filenames may use other extensions. In that case, you will need to check
  278. with your supplier to determine which file contains font outlines and
  279. which file contains font metrics. FontManager will transparently convert
  280. fonts from any source MS-DOS, Macintosh or Amiga.
  281.  
  282. Run FontManager by double-clicking on its icon. The program opens a window
  283. with a dual-directory di splay, one for source directory (where the tfont
  284. binary and font metric files are located) and one for destination
  285. directory (generally CGFonts :). Each directory list box has the standard
  286. gadgets associated with such objects; the scrollbar, a pair of scroll
  287. buttons and a string gadget containing the pathname. In addition, each
  288. list box has four other gadgets.
  289.  
  290. The first is the module gadget which is located atop the directory list.
  291. The source module is Adobe Type 1 and the destination module is either
  292. CG Library or CG Library 020 +881. If you are using an accelerated Amiga,
  293. you will want to use the latter module since a significant increase in
  294. speed will be realized. The second and third gadgets (the disk icon and
  295. the up-arrow by its side) offer an alternative to typing the pathnames
  296. into the string gadgets. Clicking on the disk icon will put a device list
  297. into the list box. This list contains physical devices (indicated as
  298. <DSK>) as well as assigned volumes (indicated as <LOG>).
  299. Double-click the name of the device and the files and subdirectories of
  300. that device will be displayed. Double-click on the directory that contains
  301. your Type 1 fonts. If you need to back up, click on the up-arrow gadget to
  302. view the parent directory. When the filnames of vour Tvpe 1 fonts appear
  303. in the requester, click on the font binary f.ile of the font that you wish
  304. to convert. If you wish, you may shift-click to select multiple fonts for
  305. conversion.
  306.  
  307. The fourth gadget is a 'fuel gauge' that is used to show the status of
  308. read/write operatious. The left gadget will fill as the source font is
  309. read in. When that gauge reached 100%, the destination gadget will begin
  310. to fill. When this gauge has reached 100%, the conversion is complete.
  311.  
  312. At the left of the window are the four gadgets that drive the application.
  313. Top to bottom. the four icons represent: Convert, Preview, Abort and
  314. Iconify. Convert will read in the source files and write out the proper
  315. Compugraphic format files to the destination directory. Preview will read
  316. in the source files and display a sample of the typeface in a new window.
  317. Abort will terminate an operation after first requesting your confirmation.
  318. If you're running Workbench 2.O, clicking Iconify will collapse
  319. FontManager's window into a tiny window.
  320.  
  321. To be used with Professional Page, each Compugraphic font must be
  322. comprised of three files: <fontname>.dat, <fontname>.lib and
  323. <fontname>.metric. With all three files in your CGFonts: volume, the font
  324. is ready to be used in your documents. These files are all that is needed
  325. for the onscreen display and for dot-matrix printing. However, you will
  326. need one more file if you intend to use the font in PostScript output the
  327. <fontname>.psfont file. This is the font definition file that is written
  328. into the PostScript output when you have selected Include Downloadable
  329. Fonts in the Output to PostScript requester. Such files reside in the
  330. CGFonts:ps directory.
  331.  
  332. When you click on Convert, FontManager will ask you if you want the
  333. downloadable font file to be placed into the CGFonts:ps directory.
  334. If you wish to print PostScript, you must answer affirmatively to this
  335. question; otherwise, nothing will be downloaded and a different font will
  336. be substituted when the file is actually printed.
  337.  
  338. Extra Fonts Included:
  339. In addition to the original 19 bitmap fonts, Professional Page is now
  340. supplied with seven Compugraphic fonts:
  341.  
  342.    . Caslon540
  343.    . CG Omega
  344.    . CG Times
  345.    . CG Triumvirate
  346.    . Garth Graphic
  347.    . Shannon Book
  348.    . Uncial
  349.  
  350. These typefaces can be used in a wide variety of typesetting situations.
  351. Due to the Compugraphic Bullet technology built into Professional Page,
  352. these typefaces are always represented as smooth outlines (both onscreen
  353. and in print).
  354.  
  355. Font Size:
  356. In version 3.0, you may specify font sizes to an eighth of a point. Any
  357. value may be entered in the Point Size requester; however, all values are
  358. rounded to the nearest eighth of a point. For example, a value of 12.062
  359. will result in a point size of 12.000, while a value of 12.063 will
  360. result in a point size of 12.125.
  361.  
  362. Although this degree of text rendering precision is beyond the
  363. capabilities of the Amiga monitor or of many dot matrix printers, high-
  364. resolution imagesetters are capable of reproducing fractional point sizes
  365. accurately.
  366.  
  367. Note that the Point Size requester now contains an Add to Menu gadget.
  368. When this gadget is deselected, the new point size will not be added to
  369. the list of point sizes in the menu. This is a convenient way of keeping
  370. the point size list to a manageable size by omitting 'one time only'
  371. point sizes.
  372.  
  373.  
  374. 5. NEW PAGE DESIGN FEATURES
  375.  
  376. New Text Wrap Options:
  377. Version 3.0 of Professional Page allows vou to define the text wrap
  378. options of a box. This replaces the permeable/impermeable featnre that
  379. was part of previous versions. There are two sets of options associated
  380. with the text wrap options.
  381. The first set consists of: None, Rectangle and Irregular. None is
  382. equivalent to the old Box Permeable; i.e., the box will not displace any
  383. text. Rectangle is equivalent to Box Impermeable; i.e., text will be
  384. displaced to flow around the box. Irregular will displace text to flow
  385. around any structured graphic.
  386.  
  387. When Irregular is selected, the second group of options come into play.
  388. They are: Widest, Left, Right and Exclude. Widest will flow text around
  389. the structured graphic on whichever side there is the most room. Left
  390. and Right will flow text around the specified side of the box. Exclude
  391. will not allow any text on either side of the box. Text will flow to the
  392. top of the box and will continue below the box bottom.
  393.  
  394. When your Text Wrap Option is set to Rectangle or Irregular, you should
  395. enter a value in the Text Standoff gadget to allow some whitespace
  396. between your graphic and the surrounding text.
  397.  
  398. New Text Import Filters:
  399. The addition of new text filters makes the process of importing text more
  400. convenient. These text filters understand the native formats of common
  401. Amiga word processors (such as ProWrite, QuickWrite, excellence!, etc.)
  402. and will retain text styles and some formatting information. lf you are
  403. using any of the supported word processors you need no longer save your
  404. text as ASCII but may instead Save in the software's own format. You
  405. should still refrain from attempting to incorporate graphic material into
  406. your text files however the graphic materials should be imported into
  407. Professional Page directly.
  408.  
  409. To accommodate the new formats, a new text filter management system has
  410. been implemented. You select the import format from a list box that
  411. appears when you select Import/Text from the menus. From time to time,
  412. Gold Disk will make additional filters available.
  413.  
  414. Professional Draw V3.0 Fountain Fill Supported:
  415. Professional Draw (V3.0) or higher) allows you to apply fountain fills to
  416. objects. Such fills are used as picture components or to provide shaded
  417. backdrops to your page elements. Judicious use of this technique may
  418. impart a more professional look to your pages. Incremental variation of
  419. backdrop shading is often seen in adverising materials, greeting cards,
  420. etc. In version 3.0 of Professional Page, fountain fills that are
  421. contained in Professional Draw clips are displayed and printed.
  422.  
  423. Hot-Link to Professional Draw:
  424. Users of Professional Page may now access the full power of Professional
  425. Draw directly from Professional Page. Clips may be transferred to
  426. Professional Draw for editing or adjustment. This function operates in the
  427. same manner as the hot-link to the Article Editor. For the hot-link to
  428. work, Professional Draw must be running. This will only work with
  429. Professional Draw V3.0 or higher.
  430.  
  431. To operate the hot-link, simply click on a box containing a Professional
  432. Draw clip and select PDraw from the Draw menu or press right-Amiga-
  433. backslash (the slash on the keyboard's top row).
  434.  
  435. Undo:
  436. The Undo feature is one that will be welcomed by users at all levels. If
  437. you shonld make a mistake or if an operation results in an undesirable
  438. side effect, simply click on Undo in the toolbox and your previous
  439. condition will be restored. The Undo Tool replaces the Page Move Tool in
  440. the Toolbox. You may still move the view of the page by means of the
  441. Page Move gadget or by using the cursor keys when not in Edit mode.
  442.  
  443. The following operations may be undone:
  444.  
  445.    . Changes made via the box attributes requester
  446.    . Changes made to the border data of a box
  447.    . Changes to the cropping of a box
  448.    . Deletion of a box
  449.    . Deletion of the contents of a box
  450.    . Repositioning of a box
  451.    . Reordering of a box (box to front/back)
  452.    . Rotation of a box
  453.    . Scaling of a box
  454.    . Aligning a group
  455.    . Centering a group
  456.    . Deleting a group
  457.    . Moving a group
  458.  
  459. Whenever you use one of the preceding operations, you create a situation
  460. in which an Undo operation is pending. When an Undo is pending, the Undo
  461. Tool is activated; when there is no pending Undo, the Undo Tool is
  462. ghosted. Note also that Undo works on the most recent operation only,
  463. without Redo; i.e. you cannot undo an Undo operation.
  464.  
  465. Further, some operations will cancel the pending Undo.
  466. These operations are:
  467.  
  468.    . Box Clone
  469.    . Box Import (hitmap, text, etc.)
  470.    . Box Link
  471.    . Box Unlink
  472.    . Create Box
  473.    . Edit Text
  474.    . Clone group
  475.    . Forget group
  476.    . Make group
  477.    . Merge group
  478.    . Delete page
  479.  
  480.  
  481. 6. IMPROVED PRINTING CAPABILITIES
  482.  
  483. Auto-Tiling:
  484. Auto-tiling allows you to produce output that is larger than your printer's
  485. physical page size. This function is available for Preferences printers as
  486. well as PostScript printers. You may define a page up to 48" x 48".
  487. Professional Page will output the oversize page in segments on a series of
  488. standard printer pages. If you commonly send oversize pages to a service
  489. bureau, this feature will allow you to proof the job on any available
  490. printer.
  491.  
  492. Improved Color Separation:
  493. Several improvements have been made to the color separation functions. Of
  494. primary concern to the user is the new manner of defining Undercolor
  495. Removal (UCR). UCR may now be specified as a threshold (expressed as a
  496. percentage). The percentage that you enter in the output requester
  497. specifies the minimum of YMC (yellow, magenta and cyan) below which no
  498. color is removed. Thus, UCR now removes grey only from the darkest areas,
  499. thereby retaining the subtleties of colors which might otherwise be lost.
  500. For more information about UCR and color separations in general, please
  501. consult the Professional Page main manual, Chapter 9: Using Color and
  502. Chapter 10: Output.
  503.  
  504.  
  505. 7. FUNCTION GENIES
  506.  
  507. Professional Page's new Function Genie facility is useful for automating
  508. common operations, creating special effects or maVing major changes to an
  509. existing document (such as changing the size of every page). In fact, it
  510. is now possible to do virtually anything with Professional Page with just
  511. a few clicks of the mouse! A number of sample Function Genies have been
  512. included in your Professional Page package.
  513.  
  514. Professional Page Function Genies are implemented as ARexx scripts so they
  515. require ARexx to function. Consequently, you must have ARexx running and
  516. the rexx: directory assigned. If the rexx: directory is not assigned i
  517. your system when you load Professional Page, you will be presented with
  518. a requester telling you to "Insert volume rexx: in any drive". If you
  519. have not run the RexxMast program to make ARexx available, you will
  520. get an error message saying "Genies require ARexx to operate." when you
  521. start Professional Page. If you get this message, quit Professional Page,
  522. start RexxMast and restart Professional Page.
  523.  
  524. Since Function Genies are actually ARexx scripts, the Genie facility
  525. allows you to run and even edit ARexx scripts from within the application
  526. itself. For more details of both the implementation and the av ailable
  527. ARexx commands, please see Section 9 of this Addendum.
  528.  
  529. Executing a Function Genie:
  530. When you select the Function Genie Tool (which resembles a smoking 'magic
  531. lamp') a list box will appear with the list of available Function Genies
  532. and a grouping of several buttons. The Function Genies displayed in the
  533. list box are not in memory, but are on disk (in rexx:). To execute a
  534. Function Genie, simply double-click on it (or select it from the list and
  535. click on the Execute button). Some Function Genies involve prompts to the
  536. user. These prompts are displayed on the title bar.
  537.  
  538. Using the About Button:
  539. Information is available which describes the use of each Function Genie.
  540. After you select the Function Genies Tool and the list box shows the
  541. available Function Genies, simply select the desired Genie with the mouse
  542. and click on the About button. A window will open and the information for
  543. that Function Genie will be displayed.
  544.  
  545. Defining & Modifying Function Genies:
  546. New Function Genies may be created by clicking on the Define button.
  547. This will bring to the front the Article Editor so that you may enter the
  548. ARexx script for your Function Genie. You may also edit existing scripts
  549. by selecting one from the list box and clicking on the Modify button. Do
  550. not use any style changes (i.e bold, italic) as ARexx will consider them
  551. to be errors.
  552.  
  553. When you have finished editing, choose Send Text Home in the Article
  554. Editor's Special menu to send the script back to Professional Page (just
  555. as you do when editing text). The program will prompt you for a name for
  556. the newly-created Genie and it will automatically be saved to the rexx:
  557. directory. You need not append a suffix to the name as Professional Page
  558. will automatically append a .pprx extension (which will not appear in the
  559. Genie list).
  560.  
  561. When creating a new Function Genie, you must begin with a comment line.
  562. ARexx requires this. A comment in ARexx begins with "/*" and ends with "*/"
  563. Here are some examples:
  564.  
  565. /* This is an ARexx comment. */
  566.  
  567. /*
  568. The comment need not be en a single line. It just
  569. needs to start and end wIth the right characters.
  570. */
  571.  
  572. It's a good idea to use the comment line for describing the program's
  573. function since the information contained in this initial comment is
  574. displayed when you click on the About button.
  575.  
  576. Function Genie List Management:
  577. The install PPage program will place the Function Genies into the rexx:
  578. directory. When you select the Function Genie Tool, the list box will
  579. display that list of the available Function Genies. However, if you have
  580. Genies in a directory other than rexx:, you may still access them by
  581. clicking on the import button which will bring up a file requester.
  582. Importing a Function Genie in this way will make it available by copying
  583. it to the rexx: directory.
  584.  
  585. The Delete button allows you to delete a Function Genie. However, you
  586. should be aware that it is the Function Genie file on disk that is
  587. actually deleted and, once deleted, the file is not recoverable.
  588.  
  589. Function Key Genies:
  590. You may assign a function key shortcut to any Function Genie by selecting
  591. the desired Function Genie and clicking on the Keys button. Professional
  592. Page will then prompt you to hit a Shortcut key. This must be either the
  593. Alt key in conjunction with one of the function keys or Alt-Shift in
  594. conjunction with a function key. The keyboard shorcut associated with a
  595. Function Genie (if any) is displayed to the right of the Genie's name.
  596. To cancel a shortcut assignment, simply select the Function Genie, click
  597. on Keys, and hit the Esc key.
  598.  
  599. Unexpected Returns:
  600. If ARexx encounters any problems when a Function Genie is executed, a
  601. Results from ARexx command screen will pop up to allow you to read the
  602. ARexx messages and/or errors generated by the execution of the Function
  603. Genie. You are likely to see this screen when developing new Genies.
  604.  
  605. If there are more messages and/or errors than will fit on the screen,
  606. the word "[MORE]" will appear at the bottom right of the screen. You may
  607. use the cursor keys or the left mouse button to scroll through the list.
  608. When you are finished reading your results, you can close the screen by
  609. pressing the 'q' key, the Return key or by pressing the right mouse button.
  610.  
  611. The Supplied Function Genies:
  612. The reminder of this section is devoted to a description of the purpose
  613. and operation of the Function Genies that are included in your Professional
  614. Page package. Note that many of these Genies will put prompts and status
  615. reports into the Professional Page title bar and consequently you must be
  616. attentive to changes in the title bar.
  617.  
  618. Some Genies (Calculator, SmallCaps, NoCaps, FindAndReplace, AllCaps, etc.)
  619. require the Use of gdarexxsupport.library. This file is placed into your
  620. libs: directory automatically when you run Install PPage. If the file is
  621. removed from your libs: directory, you will get an error message from any
  622. Genie that requires the use of this library. Copying the
  623. gdarexxsupport.library file to your libs: directory will allow you to
  624. continue.
  625.  
  626. ADProHotLink:
  627. This Genie will run Art Department Professional (published by ASDG
  628. Incorporated) and pass a bitmap graphic to it from your Professional Page
  629. document. First, you are prompted on the title bar to select a box
  630. containing a bitmap. Click in the desired box. If it does not contain a
  631. bitmap, you will get an error and the Genie will terminate.
  632. When a valid box is selected, you will be presented with a list box that
  633. contains the ADPro screen modes: HIRES, V_OVERSCAN, INTERLACE, PAL and
  634. H_OVERSCAN. Select the desired mode and click on OK. Next, you must
  635. select the Render Mode for ADPro. Click on your choice and click on OK.
  636. The next requester prompts for the image dimensions. The values shown in
  637. the Width and Height string gadgets represent the size of your bitmap in
  638. pixels. The Genie will then try to run ADPro. If ADPro exists under that
  639. name in an assigned volume named ADPro: (i.e. the full path is
  640. ADPro:ADPro), it will run automatically; otherwise, a file requester will
  641. appear so that you can tell the Genie where to find ADPro.
  642.  
  643. You must save your changes to the bitmap file and quit ADPro to continue
  644. using Professional Page. The Genie will sleep until you quit ADPro; at
  645. which time, your graphic will be returned to its box in the Professional
  646. Page document while "Reimporting bitmap.." appears in the title bar.
  647.  
  648. Align:
  649. This Genie aligns boxes at a user-specified position. You are prompted to
  650. click on the boxes to be aligned. Each time you select a box, a boxnumber
  651. is returned to the Genie. Once you have clicked on all the boxes you want
  652. to align, click on the page itself or on the art board. Clicking on a
  653. position where there is no box returns a boxnumber of 0, which signals the
  654. Genie that you are finished selecting boxes.
  655.  
  656. The Select alignment.. list box will prompt you for the type of alignment.
  657. Supported alignments are: Bottom, Center Horizontally, Center Vertically,
  658. Left, Right an Top. Make your selection and click on OK. In the next
  659. requester, enter the position (in current units) on the page where the
  660. boxes are to be aligned. For example, selecting Top for alignment and 1
  661. for position (with inches as the current units), will align the tops of
  662. the selected boxes at the 1" mark of the vertical ruler.
  663.  
  664. AllCaps:
  665. This Genie will convert a selected block of text to all uppercase. You
  666. must be in edit mode. If you try to invoke it from any other mode, an
  667. error message will appear. If you have not selected a block of text, you
  668. will get an ARexx error message.
  669.  
  670. AlterBoxesOnPages:
  671. This is handy if you have already created some pages from the templates
  672. or the default and then wish to change the attributes of one of the
  673. component boxes. This Genie will alter the occurrence of that component
  674. box on each of the page in a specified range.
  675.  
  676. You are prompted (on the title bar) to select the recurring box that you
  677. wish to alter. A list box will appear, allowing you to choose the attribute
  678. to be altered. A requester will prompt you for the change(s) to be made.
  679. Another requester prompts you to specify the range of pages to be altered.
  680. Enter the swing page number of the range in the From gadget and the ending
  681. page number of the range in the To gadget. The third gadget in this
  682. requester allows you to choose whether to apply the changes to odd pages,
  683. even pages or all pages in the specified range.
  684.  
  685. AutoImport:
  686. This Genie will import a text file and paste it into your document,
  687. creating as many pages as required to accommodate the entire file. First,
  688. create a page and then execute this Genie. You will be prompted to click
  689. on the box into which the text is to be imported. There may be several
  690. linked boxes on the page. Click in the first box of the chain. The box
  691. must be empty. After you've clicked on the box, a file requester will
  692. appear, allowing you to select your text file.
  693.  
  694. When that is done, the Genie imports the text file and pastes it into the
  695. selected box. If the text overflows that box, a new page is created. The
  696. newly-created page will be a duplicate of the first page in the chain.
  697. Each new page is automatically linked to the previous page. This process
  698. continues until all text has been flowed into the document.
  699.  
  700. The first page in the chain need not be the last in the document; the
  701. resulting pages are inserted. In other words, if you have a four-page
  702. document and you AutoImport a file which requires two pages into page 3,
  703. a new page 4 will be created for your file and the original page 4 will
  704. become page 5.
  705.  
  706. AutoSave:
  707. This Genie can spare you a lot of grief. It will prompt you to save your
  708. work at regular intervals and, optionally, creak a backup file for you.
  709. The backup file is the original copy of the file for this session. For
  710. example, if you run Professional Page and load a document file called
  711. MyDoc, a backup file file of that version of the document is made
  712. (MyDoc.bak) and each time you save, the file MyDoc is updated. For the
  713. duration of that session, MyDoc.bak will remain the same. The next time
  714. you run Professional Page and work with MyDoc, a new MyDoc.bak file will
  715. be created.
  716.  
  717. When the Genie is executed a requester will present you with two prompts:
  718. one for the number of minutes to wait before prompting you to save And one
  719. requesting whether the Genie should make backup files. Enter appropriate
  720. responses and click on OK. The Results from ARexx command screen will
  721. appear with the message "running AutoSave macro. [CLI x]" where x is a
  722. number that will vary depending on the number of CLI processes running in
  723. your machine. Click the right mouse button to close the screen And resume
  724. working.
  725.  
  726. When the specified interval has elapsed, a dialog box will appear on the
  727. screen, asking if you want to save now. Clicking Yes will save your
  728. document and, if you have directed the Genie to do so, a backup file will
  729. be created. Clicking on No will bypass the save operation but leave the
  730. Genie running. Clicking on Cancel will terminate the AutoSave Genie.
  731.  
  732. If you wish, you can use the SavePrefs Genie (see below) to make the
  733. AutoSave Genie run automatically every time you run Professional Page.
  734.  
  735. BoxAttr:
  736. This Genie will allow you to apply an attribute change to a selection of
  737. boxes on the page. You will be prompted to select the box attributes that
  738. you wish to change. The choices are: Angle, Frame, FrameData (line color,
  739. fill color, line weight, line pattern, fill pattern), Hide, Tabs, Text
  740. Wrap, Lock, Margins, Offset, Position, Size, Standoff and Transparent.
  741. Select the desired attribute and click on OK. You are then prompted to
  742. click on the boxes to which the changes will be applied. When all boxes
  743. have been selected, click on the page itself or on the artboard. Then
  744. enter the new attribute(s) in the requester that appears.
  745.  
  746. BoxColors:
  747. Use this Genie to invert a text box; i.e. switch to light text on a dark
  748. background. First you are prompted to click on the box to be inverted.
  749. Then a list box appears containing the current color list. Click on the
  750. desired box fill color and click OK. The list box reappears and prompts
  751. you to select the desired text color. Make your selection and click on OK.
  752.  
  753. Calculator:
  754. This Genie will evaluate a one-line mathematical expression and display
  755. the result for you.
  756.  
  757. CommandLine:
  758. This Genie allows you to issue ARexx commands directly. This is only
  759. recommended for advanced users. If the command takes no parameters,
  760. the empty parentheses may be left off and the Genie will append them
  761. automatically.
  762.  
  763. CopyBoxAttributes:
  764. This Genie will copy an attribute from a selected box to one or more
  765. boxes on the same page. When prompted, click on the box whose attribute
  766. is to be copied. The next prompt will direct you to click on the boxes
  767. to which the attribute will be applied. When all destination boxes have
  768. been selected, click on the page itself or on the artboard to signal the
  769. Genie to proceed.
  770.  
  771. The Select attribute to copy requester will then appear. Click on the
  772. attribute to be copied and click on OK. "Working.." will appear in the
  773. title bar until the Genie has completed its job.
  774.  
  775. CopyBoxContents:
  776. This Genie will copy the contents of a selected box to one or more other
  777. boxes on the page. The first title bar prompt directs you to select the
  778. box whose contents are to be copied and then the recurring prompt directs
  779. you to select destination boxes. When all destination boxes have been
  780. selected, click on the page itself or on the artboard to signal the Genie
  781. to proceed. "Working.." will appear in the title bar until the Genie has
  782. completed its job.
  783.  
  784. CopyBoxToPages:
  785. This Genie will replicate a selected box across a range ofpages. When
  786. prompted, click on the box to be replicated. Once the box has been
  787. selected, an Enter options requester will appear, prompting you for the
  788. first and last page number defining the destination range. You also have
  789. the option of copying the selected box to odd, even or all pages.
  790.  
  791. CopyPageSpecs:
  792. This Genie will copy the page specifications of the current page to a
  793. range of destination pages. The page specifications are the data that
  794. you access by selecting Page/Alter/Current from the menus.
  795.  
  796. CopyPages:
  797. This Genie will create new pages from a given range of pages. A dialog
  798. box appears requesting input for from, to and number of copies. As an
  799. example, if you have a one-page document and you input "1" for from, "1"
  800. for to and "3" for number of copies, the result will be a four-page
  801. document in which the last three pages are duplicates of the first. Any
  802. existing pages following the source range will be pushed forward to
  803. higher page numbers to make room for the insertion of the copied pages.
  804.  
  805. DeleteRange:
  806. This Genie deletes a range of pages. Simply enter the page numbers
  807. corresponding to the first and last pages of the range to be deleted.
  808. As you would expect, any existing pages following the deleted range are
  809. pulled back to lower page numbers, replacing the deleted range.
  810.  
  811. DropCaps:
  812. This Genie creates a drop cap. This will only work on the first line of
  813. the box. First you must click in the box that contains the text that is
  814. to be drop-capped. Then a requester appears containing two string gadgets.
  815. Enter the number of characters to be affected and the number of lines of
  816. text that the drop cap is to traverse. After clicking on OK, you are
  817. presented with the Select Drop Cap font requester. Select the desired
  818. font and click on OK. The first x characters are extracted from the text
  819. and a new box is created at the top left hand comer of the text box with
  820. the first x characters confined within it.
  821.  
  822. DropShadowBox:
  823. This Genie creates a dropshadow for a selected box. First you must click
  824. in the box that is to be dropshadowed. The Select Drop Shadow offset
  825. requester appears containing two string gadgets, allowing you to specify
  826. values for X and Y. These values represent the left and top offsets of
  827. the dropshadow box and consequently, the width of the drop shadow around
  828. the selected box.
  829.  
  830. When you click on OK, the new box is created with the specified offsets
  831. and the Select Fill Color requester appears. Click on the desired color
  832. for the dropshadow and click on OK. The new box is then filled with the
  833. specified color and the originally selected box is brought to the front.
  834. If you are in WireFrame Graphics mode, the dropshadow will not be
  835. immediately evident and you will be notified that you must select
  836. WireFrame Graphics to see the results.
  837.  
  838. EnterPersonallnfo:
  839. This Genie will put up a form requesting your name, address, etc. Enter
  840. your personal info into the string gadgets and click on OK. The data
  841. you enter will be saved in a file (s:ppage.config) and you may then
  842. insert your personal info into a box at any time by invoking the
  843. InsertPersonallnfo Genie (see below).
  844.  
  845. FindAndReplace:
  846. This Genie will do a global search and replace operation. The Enter
  847. Search String requester will prompt you for the search string and the
  848. replace string. Once those have been entered, you are asked whether or
  849. not the search should be Case sensitive. The Genie will then search
  850. every text box in the document and make all the specified replacements.
  851. The title bar will display "Working" until all boxes have been searched.
  852.  
  853. GetTaggedText:
  854. This Genie will gather a list of style tags from within a document and
  855. gather all tagged paragraphs into a previously created box. This is a
  856. convenient method for generating a Table of Contents. You must be in edit
  857. mode to use this Genie.
  858.  
  859. The style tags used in your document are presented in a Select tags to
  860. collect list box. Click on the names of the tags you want to collect. For
  861. a Table of Contents, these will generally be chapter titles, headings and
  862. subheadings. Next, you must click in the box into which the text is to be
  863. placed. "Working" will appear in the title bar while this Genie is
  864. performing its task.
  865.  
  866. GreekBoxes:
  867. This Genie will greek some or all of the boxes in a document. You specify
  868. the type of boxes to greek in the Select boxes to greek list box. The
  869. choices are: All, Bitmap, EPSF, PDraw Clips, Structured Graphics and Text.
  870. Select one or more types of boxes and click on OK. All boxes matching your
  871. selection criteria will be displayed with a large X in them.
  872.  
  873. GroupAttr:
  874. This Genie will allow you to alter the attributes of a selected group. If
  875. no group is selected, you will receive an error message instructing you
  876. to first select a group.
  877. A list box will appear directing you to select the attribute to be
  878. changed. The choices are: Angle, Frame, FrameData Hide, Tabs, Text Wrap,
  879. Lock, Margins, Offset, Position, Size, Standoff and Transparent. Select
  880. the desired attribute and click on OK. Enter the new attribute(s) into
  881. the requester that appears and click on OK. The new attribute will be
  882. applied to every box in the group.
  883.  
  884. GroupCopyBoxAttr:
  885. This Genie is used to copy an attribute of a selected box to the current
  886. group. A prompt will direct you to click on the box whose attribute is to
  887. be applied to the group. A list box will appear instructing you to select
  888. the attribute to be changed. The choices are: Angle, Frame, FrameData,
  889. Hide, Text Wrap, Lock, Margins, Offset, Position, Size, Standoff and
  890. Transparent. Select the desired attribute and click on OK. The selected
  891. attribute will be applied to every box in the group.
  892.  
  893. GroupCopyBoxContents:
  894. This Genie will copy the contents of one box to all the boxes in the
  895. current group. When prompted, click on the ungrouped box whose contents
  896. is to be placed into each of the boxes of the group. No other user input
  897. is required. "Working.." will appear in the title bar until the contents
  898. have been copied to all group boxes.
  899.  
  900. GroupCopyToPages:
  901. This Genie will copy the selected group to a range of pages that you
  902. specify. The Enter options requester prompts you for a starting page,
  903. ending page and whether the group should be copied to odd, even or all
  904. pages. A "Done" dialog box will inform you when the group has been copied
  905. to all the specified pages.
  906.  
  907. GroupDistribute:
  908. This Genie will distribute boxes over a user-selected distance (both
  909. horizontally and vertically). This is particularly convenient when you
  910. have created a box and cloned a number of new boxes from it. Select the
  911. group and invoke the Genie. You will be selecting the manner of
  912. distribution and the amount of space.
  913.  
  914. The Horizontal Distribution requester offers five choices: Boxes,
  915. Centers, Left, None and Right. Boxes will divide the total space into
  916. equal parts. The space between each of the boxes will be equal to one of
  917. those parts. Centers will position the box centers evenly over the
  918. specified space. Left and Right will position the specified box edges
  919. evenly over the specified space. None will result in no horizontal
  920. displacement of the boxes in the group.
  921.  
  922. The Vertical Distribution requester, its choice and results, is the same
  923. as the horizontal one except that it WOrks in the other dimension. When
  924. you have selected from both requesters, a new requester prompts you for
  925. From and To values. These values define the space within which the group
  926. will be distributed. Enter appropriate v alues to define the desired
  927. area on the page.
  928.  
  929. GroupMove:
  930. This Genie will move the group to a new position on the page. The Enter
  931. coordinates requester will appear, displaying the current values for the
  932. left and top positions of the group. Enter the appropriate values for the
  933. group's desired position. Note that these values are applied to the group
  934. and not to a specific box within the group. In other words, the new left
  935. position will be applied to the leftmost box of the group and the new top
  936. position to the topmost box.
  937.  
  938. GroupRotate:
  939. This Genie will rotate a group to a specified angle. Simply enter the
  940. desired angle into the Rotation Angle requester and click OK. The group
  941. will rotate counterclockwise around the top left point of the group.
  942. Entering negative values will rotate the group clockwise.
  943.  
  944. GroupScale:
  945. This Genie will scale a group to a new size. A Select Scaling Options
  946. requester will prompt you for a percentage for width and height. These
  947. values will be applied to the box positions as well as to their size.
  948. It will probably be necessary to manually adjust the font size of text
  949. contained within the boxes. For this reason, this Genie is best applied
  950. in the earlier stages of layout, before the boxes are filled in.
  951.  
  952. GroupSpace:
  953. This Genie will space boxes both horizontally and vertically, based on
  954. user input. This is also convenient when you have created a box and
  955. cloned a number of new boxes from it. Select the group and invoke the
  956. Genie. You will be selecting the manner of distribution and the size of
  957. the space between boxes in the group.
  958.  
  959. The Horizontal Spacing and Vertical Spacing requesters offer the same
  960. choices as their counterparts in GroupDistribute; however, in this Genie
  961. you specify the amount of space between each element of the group, rather
  962. than the total space occupied by the group.
  963.  
  964. GroupTile:
  965. This Genie will replicate a group until it fills the page. This is a
  966. quick and easy way to create a tiled backdrop. A significant time savings
  967. will be realized by those who have been creating such pages manually! An
  968. Enter coordinate's requester will appear containing six string gadgets
  969. for: Start X, Start Y Number of Columns, Number of Rows, Horizontal
  970. spacing and Vertical spacing. The Genie displays appropriate calculated
  971. values (based upon current margin settings and the size of the group) but
  972. you are free to alter them if you wish. Click on OK when all coordinates
  973. are acceptable and the group will be tiled to fit the page.
  974. Note that the group is moved to the top left corner of the page before
  975. it is tiled.
  976.  
  977. InitialCaps:
  978. This Genie will capitalize the first letter of all words in a selected
  979. block of text. This Genie works only in edit mode.
  980.  
  981. InsertDoc:
  982. This Genie will insert a previously saved Professional Page document
  983. into the current document while maintaining all links between boxes.
  984. For example, if you have a 4-page document with page 3 onscreen and then
  985. insert a 2-page document, the page that w as originally page 3 will be
  986. pushed forward to page 5 and any link between the pages originally
  987. numbered 2 and 3 will still exist between page 2 and what is now page 5.
  988.  
  989. With a bit of trickery, this Genie can also be used to append a document
  990. in memory with a document on disk. Create a new page from either template
  991. or default - it really doesn't matter since we won't actually be using
  992. this page. With the new page onscreen, invoke this Genie.
  993.  
  994. InsertPersonalInfo:
  995. This Genie will paste your personal info into the text stream. When
  996. invoked, the Genie will present you with the Select options requester.
  997. You must click on the field names that you want to include and specify
  998. whether the data is to be separated by Returns or by comas. In order
  999. for this Genie to work, the data must have already been entered using
  1000. the EnterPersonalInfo Genie (see above).
  1001.  
  1002. MailMerge:
  1003. This genie will make multiple copies of the current document replacing
  1004. the document's variable fields with data from a file that you have
  1005. created.
  1006.  
  1007. The variable fields (or merge strings) are created in Professional Page
  1008. by surrounding a word in double guillemots. The guillemot characters are
  1009. the French quotation marks that look like this: << >>. Use Alt-9 to type
  1010. the opening guillemot character and Alt-0 to type the closing one.
  1011. Remember, there must be two opening characters and two closing ones.
  1012. If a data merge operation fails, a likely cause is the omission one of
  1013. these characters.
  1014.  
  1015. A group of merge strings in your Professional Page document might look
  1016. like this:
  1017.  
  1018.      <<<<Name>>>>, <<<<Address>>>>, <<<<City>>>>
  1019.  
  1020. Your data file must consist of the replacement data for each of the
  1021. variable fields and each data element must be tab-delimited Or in CSV
  1022. format (Comma Separated Vales). CSV format requires that a field be
  1023. enclosed in double-quotes (inchmarks) and that the fields of a record
  1024. be separated by comas. Also, the first line of the data file must be
  1025. the field names; i.e. the 'dummy' words that are in the Professional
  1026. Page document. Succeeding lines are indivldual records to be used in
  1027. each pass of the merge operation. You may create this list manually or
  1028. (more conveniently) use a database program 's query language to export
  1029. selected records to an ASCII text file. Remember that each field of the
  1030. record must be delimited by a tab or a comma. If the file is delimited
  1031. with tabs, the inchmarks are not required. A CSV data file intended
  1032. for use with the three merge strings in the above example might look
  1033. like this:
  1034.  
  1035.      "Name","Address","City"
  1036.      "Joe User", "123 My Street", "Usertown"
  1037.      .....<list continues>
  1038.  
  1039. If any of the inchmarks are missing in a CSV file, you will get
  1040. unexpected results. Another possible reason for a merge failure is
  1041. discrepancies between the field names as they appear in the document and
  1042. as they appear in the data file; eg., a typo such as "Name" and "Naem".
  1043. If the fields do not match, the Genie will not replace the document's
  1044. merge field with your data.
  1045.  
  1046. When the Genie is invoked, a file requester appears prompting you to
  1047. select the data file that is to be used for the merge operation. Select
  1048. your data file and click on OK. As the data file is read in, the title
  1049. bar will display a status message indicating the number of records read.
  1050. When all records have been read, the title bar will inform you that the
  1051. Genie is "Preparing document for mail merge.."
  1052.  
  1053. Preparing the document consists of searching through the text to find
  1054. all the merge fields. Once that is done, a copy of the merge page is
  1055. made and the fields are replaced by the data from the first record.
  1056. When the Genie reaches the end of the document, another merge page is
  1057. created and, again, the fields are replaced again with the data from
  1058. the next record. This process continues until all records in the data
  1059. file have been merged.
  1060.  
  1061. On each pass through the document, the Genie will report on the title bar
  1062. "Merging record xxx of yyy" where xxx is the current record number and
  1063. yyy is the total number of records to be merged. Note that the original
  1064. merge fields still exist in your document. This allows you to repeat the
  1065. process with another data file.
  1066.  
  1067. There are two special merge fields used in conjunction with this Genie.
  1068. The first is <<<<Next>>>>. This will cause the Genie to skip to the next
  1069. record in the merge data file. You will want to use this special merge
  1070. field if you intend to have multiple records within a single document;
  1071. on a sheet of laser labels, for example. To place multiple records on
  1072. a single page, you would place a <<<<Next>>>> after each group of field
  1073. names except the last, since reaching the end of the document cause the
  1074. Genie to skip to the next record automatically.
  1075.  
  1076. The other special merge field uses the equals sign followed by any valid
  1077. ARexx expression (««=<expression>»»). The expression will be evaluated by
  1078. ARexx and the merge field replaced by the expression 's results. This
  1079. special merge field is very powerful because you may also execute disk
  1080. resident macros; to query databases, for example. For an example of its
  1081. use, see ReplaceMergeCodes below. If any errors are encountered while
  1082. the expression is being evaluated, the error(s) will be reported and the
  1083. Genie terminated.
  1084.  
  1085. MokeBoxIntoColumns:
  1086. This Genie will create several columns in a box. First you must click on
  1087. the box that the Genie will use as a guide; once the columns have been
  1088. created, this box will be deleted. A dialog box will then appear
  1089. prompting y ou to enter the number of columns required and the gutter
  1090. size and whether or not you want vertical column dividers, box borders
  1091. and links between columns. Enter the appropriate responses and click on
  1092. OK. If the box that you selected contains text and you have chosen to
  1093. link the columns, the text will be removed from the original box and
  1094. flowed into the newly created columns.
  1095.  
  1096. MakeGuides:
  1097. This Genie will put boxes of a specified size on the page. These guide
  1098. boxes may used as sizing and positioning indicators. When the Genie is
  1099. invoked, the Enter Dimensions of Grid requester will appear, prompting
  1100. you to enter values for: number of columns of boxes, number of rows of
  1101. boxes and size of the gutter between boxes. Enter the desired values
  1102. and click On OK. The title bar will display "Working" while the boxes
  1103. are being created. All guide boxes are pushed to the back so as to not
  1104. interfere with page contents.
  1105.  
  1106. MovePage:
  1107. This genie will move a range of pages within a document. The Enter Range
  1108. requester prompts you for the swing page number of the range, the ending
  1109. page number of the range and the destination page number. Enter the
  1110. appropriate page numbers and click on OK. The indicated range of pages
  1111. will be moved such that its first page is at the specified destination
  1112. page number.
  1113.  
  1114. NoCaps:
  1115. This Genie will convert a selected block of text to lowercase. This Genie
  1116. works only in edit mode.
  1117.  
  1118. ProCalcTableImport:
  1119. This Genie will import a range of cells from Professional Calc.
  1120. Professional Calc must be running and the desired speadsheet must
  1121. be loaded.
  1122.  
  1123. First you are prompted to click on a box. This box will be used as a
  1124. guide for the size and position of the imported spreadsheet range. You
  1125. must ensure that the box selected is large enough to contain the range
  1126. neatly but not so large as to separate the values too widely. You are
  1127. then asked if you want to delete the box. Click on your choice. You are
  1128. then directed to select the desired range in Professional Calc. When that
  1129. is done, you may click the Resume button and the Genie will begin
  1130. collecting the data from the range of cells.
  1131.  
  1132. The Select Options requester appears. Three options are available: Create
  1133. Link, Make Grid Lines and Right Justify Numbers. Create Link is used to
  1134. create a small data file on disk that will be used in conjuction with the
  1135. ProCalc TableUpdate Genie (described below). Select an appropriate path
  1136. and filename in the file requester. If the contents of the spreadsheet
  1137. range are likely to change, you will want to select Create Link so that
  1138. your Professional Page document can be updated with the new values later.
  1139. On the other hand, if you know that your table data will not change, there
  1140. is no purpose in choosing Create Link.
  1141.  
  1142. Make Grid Lines and Right Justify Numbers are appearance factors. Each
  1143. cell of the spreadsheet range will be enclosed in its own box. If you
  1144. select Make Grid Lines, the boxes comprising the range will have visible
  1145. outlines. If you prefer to have the numbers on a blank field with a box
  1146. around the entire table, do not choose Make Grid Lines. Instead, click
  1147. on No when asked if you want to delete the original box and choose Box
  1148. Frame for that box. Finally, you will probably always want to select
  1149. Right Justify Numbers.
  1150.  
  1151. ProCalcTableUpdate:
  1152. This Genie updates a Professional Calc table that is already contained
  1153. in a Professional Page document. You must have chosen Create Link when
  1154. the table was first imported and Professional Calc must be running with
  1155. the spreadsheet loaded. When you invoke this Genie, a file requester will
  1156. appear and you select the link data file that corresponds to the table
  1157. you wish to update. The Genie will then check the spreadsheet for new
  1158. values in the range of cells that you selected when the table was first
  1159. imported. Any cells that have been altered will be extracted from the
  1160. spreadsheet and placed in their proper position in the Professional Page
  1161. document.
  1162.  
  1163. ReplaceMergeCodes:
  1164. This Genie will search a document for merge codes which begin with the
  1165. following sequence: <<<<=. Between the merge codes, the Genie expects to
  1166. find a valid ARexx command or macro which it will interpret. The merge
  1167. codes will be replaced with the result of the interpreted command. For
  1168. example, if a box contained the following text:
  1169.  
  1170. Today is ««=FormatDate.rexx ("%w, %m %tth, %y")»»
  1171.  
  1172. invoking this Genie would result in the following text being plaeed in
  1173. the box:
  1174.  
  1175. Today is Wednesday, January 26, 1992
  1176.  
  1177. Or whatever the system date happens to be. This Genie is very powerful
  1178. because you may also execute disk resident macros; to query databases,
  1179. for example.
  1180.  
  1181. SavePrefs:
  1182. This Genie will bring up a list box containing all the settings available
  1183. in Professional Page. Click on all the ones you would like to preserve
  1184. for future sessions. The Genie will save your current settings to a file
  1185. (s:ppage.config). Each time you run Professional Page, the configuration
  1186. file will be loaded and your specified settings will be restored. In
  1187. addition, this Genie will ask you if you want to run the AutoSave Genie
  1188. (see above) each time that Professional Page is run.
  1189.  
  1190. SetPageSize:
  1191. This Genie will set a custom page size on a range of pages. The Enter
  1192. Info requester appears, containing five string gadgets for: Page Width,
  1193. Page Height, Start Page, End Page and ODD/EVEN/ALL. Enter the
  1194. appropriate responses and click on OK. All indicated pages will be set
  1195. to the specified size.
  1196.  
  1197. SmallCaps:
  1198. This Genie will change the selected block to uppercase. Any letters in
  1199. the block that were already capitals when the block was selected with be
  1200. increased in point size by 25%.
  1201.  
  1202. StepAndRepeat:
  1203. This Genie will duplicate, move and rotate a box according to your
  1204. instructions. First you are prompted to click on the "seed" box. The Step
  1205. & Repeat requester then appears, prompting you for: Count, Horizontal
  1206. Offset, Vertical Offset and Angle. Count is the number of copies that will
  1207. be created The Horizontal and Vertical Offset values are added to the left
  1208. and top values of the previous box in the chain to set the position of the
  1209. next box. Similarly, for each new box, the ed Angle value is added to the
  1210. Rotation Angle of the previous box in the chain.
  1211.  
  1212. SubScript:
  1213. This Genie will subscript the selected block. You must be in edit mode for
  1214. this Genie to work. The subscripted characters will be reduced to a point
  1215. size that is equivalent to 75% of the current size. The baseline of the
  1216. selected block will be lowered by a value that is equivalent to 25% of
  1217. the current fontsize.
  1218.  
  1219. SubstituteFont:
  1220. This Genie will replace a typeface with a different one throughout your
  1221. entire document. A list box will appear, containing all the available
  1222. typefaces. Choose the typeface that you wish to change and click on OK.
  1223. The same list box will immediately appear again and you then choose the
  1224. typeface that you want substituted. Click on OK again and the title bar
  1225. will display "Working.." while the substitutions are being made.
  1226.  
  1227. SuperScript:
  1228. This Genie will superscript the selected block. You must be in edit mode.
  1229. The superscripted characters will be reduced to a point size that is
  1230. equivalent to 75% of the current size. The baseline of the selected block
  1231. will be raised by a value that is equivalent to 25 % of the current
  1232. fontsize.
  1233.  
  1234. Table Import:
  1235. This Genie works in much the same way as the Professional Calc Table
  1236. Import Genie described above. It will import a text file (in CSV format
  1237. or tabdelimited) from disk and create a table for it using an existing
  1238. box as a guide. You must first click on the guide box and inform the Genie
  1239. as to whether or not you wish to delete the guide box. You then select the
  1240. CSV text file to import from a file requester. Finally, you are given the
  1241. option of having grid lines created and of having numbers right justified.
  1242.  
  1243. UnGreekBoxes:
  1244. This Genie will ungreek boxes of a specified type (or types). A list box
  1245. will appear prompting you to choose which types of boxes to ungreek.
  1246. The choices are: Bitmap, EPSF, PDraw Clips, Structured Graphics and
  1247. Text. Choose whatever combination you wish and click on OK. If you loaded
  1248. a document and answered No to "Load bitmaps immediately", this Genie is
  1249. very convenient for redisplaying all the pictures in your document in a
  1250. single step.
  1251.  
  1252. UnitsConverter:
  1253. This Genie will convert values from one typesetting unit to another. The
  1254. equivalencies are based on 1 - inch - 72 points, 6 picas, 2.54cm, 66.9566
  1255. ciceros, or 14 agates. The Conversion fields.. requester appears. Enter a
  1256. value for any unit and click on OK. The requester will reappear containing
  1257. the converted values. You may then enter another value for conversion and
  1258. continue in this fashion until you click on Cancel or click on OK without
  1259. making any changes.
  1260.  
  1261. 8. PAGE GENIES
  1262.  
  1263. Page Genies provide you with a facility for automatically creating pages.
  1264. It's similar to having an unlimited number of interactive templates. To
  1265. create a page from a list of predefined Page Genies, select
  1266. Page/Create/from Genie. This will bring up the Select type of document
  1267. list box containing the available Page Genie types. The types included in
  1268. the Professional Page package are: Avery Labels, Business Report,
  1269. Envelope, Full Page Ads, Traditional NewsLetter and Two Fold Brochure.
  1270. Double-click on the desired type and a list of subtypes is presented.
  1271. Again, select the desired subtype and follow the presented instructions
  1272. for that particular Page Genie. We'll step through a few examples to give
  1273. you an idea of what to expect from each of the various types.
  1274.  
  1275. Avery Labels:
  1276. This Genie will come in very handy if you often find yourself generating
  1277. labels for mailing lists, file folders, audio cassettes, video cassettes,
  1278. floppy disks - most anything! This Genie creates pages to exactly match
  1279. labels produced by Avery, both those intended for dot-matrix printers
  1280. (tractor feed, fanfold) and those intended for laser printers (full page
  1281. sheets).
  1282.  
  1283. When you invoke this Genie, a list box appears containing the names of
  1284. the various label types: Dot Matrix Labels, European Laser Labels, French
  1285. Dot Matrix Labels and Laser Labels. Select one of these and click on OK.
  1286. "Reading label database.." will appear in the title bar. Once the database
  1287. has been read, it will be displayed to you in the Select Label list box.
  1288. Each entry consists of the Avery catalog number followed by a short
  1289. description of the type of label. Click on the type of label you're
  1290. using. If a box or group is currently selected, you will be asked if you
  1291. want it to be scaled to fit the dimensions of the label. Click on Yes Or
  1292. No's you wish, and the matching page will be created.
  1293.  
  1294. If you've chosen Dot Matrix Labels, each page corresponds to only one
  1295. label and you will be asked, "How many Dot Matrix Labels?" The number
  1296. you enter is the number of 'pages' (i.e. labels) that will be created.
  1297. This is convenient when you have a fixed, known number of labels to
  1298. generate. However, for a mailing list that is continually changing, it
  1299. will undoubtedly be more convenient to export the data as a CSV file and
  1300. use one dot matrix label in conjunction with the MailMerge Function Genie.
  1301.  
  1302. Business Report:
  1303. This Genie will create a business report consisting of three pages: a
  1304. cover page, a section title page and a body page. While the first page
  1305. is on the screen, you are prompted for a report name and date. Other
  1306. requesters will appear to get your input for typeface, type style, point
  1307. size, etc. Once these are completed you are asked if you want to insert
  1308. your personal info. Respond with Yes and a requester will appear
  1309. containing the field names of your personal info. Click on the fields you
  1310. want to include and click on OK. again, other requesters will appear to
  1311. get your input for typeface, type style, point size, etc.
  1312.  
  1313. On the second page of the report, y ou enter a section title into a
  1314. requester and select your choices for typeface, size, etc. You are
  1315. then asked to indicate the number of columns you want for body text.
  1316. Enter the desired number of columns and the width of the gutter.
  1317. Another list box will appear offering you three options with regard to
  1318. your columns: Borders, Link Columns and Vertical Dividers. Borders will
  1319. give the columns visible outlines and Vertical Dividers will place ruling
  1320. lines in the gutters between columns. Choose either or both of these if
  1321. you want to incorporate these appearance factors. You will probably always
  1322. want to select Link Columns to ensure that your text gets flowed into all
  1323. the columns required. The third page again requests column information,
  1324. allowing you to have a different number and/or style of column on the
  1325. pages of the report body.
  1326.  
  1327. Envelope:
  1328. When you invoke the Envelope Page Genie, the Enter size of Envelope list
  1329. box appears. Select 9 x 4 inches or Custom. Next, you will be asked if
  1330. you would like to have your company name and address inserted
  1331. automatically. This will only work if you have previously entered your
  1332. personal info via a Function Genie. The envelope page is then created.
  1333. If you have selected Custom, you will be prompted for the width and
  1334. height of your envelope. If you responded to the name and address question
  1335. by clicking on Yes, you are then prompted to click on the position on the
  1336. envelope where your name and address will be positioned. Finally, you are
  1337. directed to select a typeface and point size for your personal info.
  1338.  
  1339. Full Page Ads:
  1340. Invoking this Page Genie will bring up the Select type of Ad requester
  1341. which contains three choices: Double Column, Single Column2 and Single
  1342. Column3. For the purposes of our demonstration, select Double Column.
  1343.  
  1344. For this Genie, you will be asked for headline text (and the attributes
  1345. of that text), whether or not to import a text file and for the type of
  1346. graphic you want to use. A number of other requesters will appear to
  1347. receive your input for the various text attributes and to get a filename
  1348. for the graphic. Selecting Cancel in any of these requesters will leave
  1349. the indicated text attribute unchanged. Once you have responded to all
  1350. the prompts for each of these page elements, you will be asked if the
  1351. result is acceptable. If it is not, you can click on Try Again and
  1352. reset any of the attribute (or select a different file, as required).
  1353.  
  1354. Finally, you are asked if you want to include your personal info. If you
  1355. select Yes, you are presented with a requester containing the field names
  1356. of your personal info. Click on the fields that you want to include and
  1357. click on OK. Again, you will be prompted for the text attributes for your
  1358. personal info.
  1359.  
  1360. Traditional Newsletter:
  1361. This Genie begins by requesting your input for four text items: the
  1362. headline, a subheading, volume and issue number and the date. After
  1363. entering each item, you must select the text attributes for that text.
  1364. After the attributes have been applied to each item, you are asked to
  1365. confirm that the result is acceptable.
  1366.  
  1367. When the initial four text items are completed, you are asked, "How many
  1368. columns will you need?". Enter the desired number of columns and a value
  1369. for the gutter space between the columns. The Select Column Options
  1370. requester will appear, offering three choices: Borders, Link Columns and
  1371. Vertical Dividers. For our demonstration, select all three and click on OK.
  1372.  
  1373. Next, a second page will appear and you will be asked for the number of
  1374. columns and the gutter size for inside pages. Enter your desired values,
  1375. click OK and select the column options for the inside pages. You are then
  1376. returned to the front page, asked if you want to import a text file and
  1377. directed to provide input for the body text attributes.
  1378.  
  1379. Two Fold Brochure:
  1380. This Genie will create both sides of a two-fold brochure on a standard
  1381. size page. First you are prompted for the text and attributes of the
  1382. headline box. When done, you are asked, "Is this OK?". Clicking on Try
  1383. Again will permit you to make adjustments to the headline as shown. When
  1384. you click on Yes, you are then prompted for the text and attributes for
  1385. the subheading box. The last stage of this Genie's creation process is
  1386. to ask if you want to import a file and to give the attributes of the
  1387. body text.
  1388.  
  1389. 9. AREXX SUPPORT AND COMMANDS
  1390.  
  1391. Professional Page's ARexx interface recognizes approximately 330
  1392. commands. Virtually every aspect of Professional Page operations may now
  1393. be driven by an ARexx script. If you have not been using ARexx previously,
  1394. we strongly recommend that you obtain and install it on your system since
  1395. many programs, not just Professional Page, can take advantage of its
  1396. presence to offer you additional capabilities. For example, we saw in
  1397. Section 7 how Professional Calc can work in tandem with Professional
  1398. Page by means of Function Genies.
  1399. Depending on your circumstances, you may wish to use Professional Page
  1400. in conjunction with other ARexx-aware applications, such as an
  1401. image-processing program or a terminal program.
  1402.  
  1403. Once you have obtained and installed ARexx, it is also a good idea to
  1404. insert the line
  1405.  
  1406.    RexxMast
  1407.  
  1408. somewhere into your startup-sequence so that ARexx will always be
  1409. available.
  1410.  
  1411. If you're new to ARexx programming (or even if you're not), we highly
  1412. recommend that you obtain a copy of the book Using ARexx on the Amiga by
  1413. Chris Zamara and Nick Sulliv an. The book contains both tutorial and
  1414. reference material and includes a companion disk. Using ARexx on the Amiga
  1415. is published by Abacus.
  1416.  
  1417. Technical Information:
  1418. The Professional Page ARexx host is implemented as an ARexx function host
  1419. (rather that the more usual command host). This is because many of the
  1420. ARexx commands in Professional Page return a result, and results can be
  1421. handled much more tidily when they appear as a function return than when
  1422. they must be accessed through the RESULT keyword.
  1423.  
  1424. One important characteristic of a function host is that it is global;
  1425. every function call in every ARexx macro is passed through a multi-stage
  1426. search procedure that begins with internal functions (those in the macro
  1427. source itself), continues with the built-in ARexx function library (the
  1428. functions listed in the ARexx manual), turns next to function hosts (such
  1429. as Professional Page) and function libraries, and finally to external
  1430. programs on disk. Consequently, it is not necessary to address
  1431. Professional Page's specific ARexx port ("PPAGEAREXX").
  1432.  
  1433. All resident Professional Page ARexx functions may be called from within
  1434. Professional Page Function Genies by their listed names. If you are
  1435. calling them from an external ARexx program then you must prefix the names
  1436. with "PPM_" in order for the calls to work. Because function calls are
  1437. global rather than being addressed to a particular host, there is a danger
  1438. of inadvertent name collision. The prefix ensures that your function will
  1439. be received by Professional Page and not by some other program that has a
  1440. function with the same name.
  1441.  
  1442. Parameter & Return Information:
  1443.  
  1444. The format of the commands is:
  1445.  
  1446. * result = Function (arg1, [arg2...])
  1447.  
  1448. When an argument is optional, it is enclosed in square brackets in the
  1449. definition. If optional arguments are omitted, you must still include the
  1450. commas. An asterisk at the beginning of the line signifies that the
  1451. function is allowed in Text Edit mode. If a function returns more than one
  1452. item of data, those items are returned in a string with spaces separating
  1453. each item. Argument and return types are discussed below for each
  1454. function. All numerical parameters are in the current user units
  1455. (inches, for example), unless otherwise noted.
  1456.  
  1457. Notes:
  1458.  
  1459.      . All Getxxx functions return data in the same form as the
  1460.        corresponding Setxxx function.
  1461.  
  1462.      . Numerical parameters are in current user units (eg. inches) unless
  1463.        otherwise noted.
  1464.  
  1465.      . Functions that do not return a value must be called in ARexx; eg.,
  1466.        call autoUpdate(0).
  1467.  
  1468.      . Arguments consisting of text should be enclosed in double quotes;
  1469.        eg., num = BoxNum("First Box").
  1470.  
  1471. Page and Box Identifiers:
  1472. In Professional Page v3.0, pages and boxes have unique identifiers to allow
  1473. macro access. Such an identifier may be either a user-specified name or a
  1474. number. If an identifier is optional and absent, the current page (or
  1475. currently active box) is assumed.
  1476.  
  1477. In the case of pages, an identifier that is a number may refer to either
  1478. a sequential or logical page. It can be important to recognize the
  1479. distinction between the two. A sequential page number represents the
  1480. position of a given page within a Professional Page document file. A
  1481. logical page number represents the position of a given page in a document
  1482. file once the page number Offset has been figured in; in other words, the
  1483. page's number in the printed document. In many cases, the sequential and
  1484. logical page numbers will be the same. An example will make this clear.
  1485.  
  1486. Suppose that you have an eight-page document contained in two files,
  1487. MyDoc1.pp and MyDoc2.pp. There are four pages in MyDoc1.pp and, when
  1488. printed, the page numbers will be 1 through 4. In this case, the
  1489. sequential and logical page numbers are identical. However, in MyDoc2.pp
  1490. there are four pages to which a page number offset has been applied. When
  1491. printed, these pages will be numbered 5 through 8. Therefore, in
  1492. MyDoc2.pp, the first page in the data file has a sequential page number
  1493. of 1 but a logical page number of 5.
  1494.  
  1495. If the page identifier's number is of the form #xxx, logical page numbers
  1496. are used; otherwise, sequential page numbers are used. When a page number
  1497. is returned by a function, that number is the sequential page number
  1498. unless otherwise noted.
  1499.  
  1500. In the case of boxes, Professional Page generates a unique box ID for
  1501. each box in the document. Consequently, user-specified box names cannot
  1502. be integers, since the internal box ID's are integers. The internal box ID
  1503. is the specifier that is returned when a box ID is requested.
  1504.  
  1505. Note: In the material that follows, <CR> represents a Return character or
  1506. new line. This is specified in ARexx by '0a'x.
  1507.  
  1508. General Functions:
  1509.  
  1510. AbortPrint()
  1511. This command has the same effect as the STOP! gadget in the print status
  1512. window, for both dot-matrix and PostScript printing.
  1513.  
  1514. AutoUpdate(bool)
  1515. Clears or sets (0 or 1) auto-update mode. When auto-update mode is set,
  1516. after each ARexx function, the screen is updated (if there are no pending
  1517. messages). Most of the time you will want to turn auto-update mode off.
  1518. When the parameter is (0), the screen is not updated until the Genie is
  1519. finished or an UpdateScreen command is issued.
  1520.  
  1521. * datewhen = CreationDate()
  1522. Returns the date on which the file was created.
  1523.  
  1524. * datenow = CurrentDate()
  1525. Returns the current date.
  1526.  
  1527. change = DocChanged()
  1528. Returns a 1 if the document has changed since the last save, 0 if not.
  1529.  
  1530. * whodoc = GetAuthor()
  1531. Returns the author's name as entered in the Information box.
  1532.  
  1533. * call SetAuthor(name)
  1534. Replaces the author's name in the Information box with name.
  1535.  
  1536. * title = GetDocName()
  1537. Returns the document name as contained in the Information box.
  1538.  
  1539. * call SetDocName(newname)
  1540. Sets the document's name to newname.
  1541.  
  1542. * ptlist = GetParaTagList()
  1543. This function returns the list of Paragraph Tags used in the current
  1544. document in the following format: (N)<CR>tagname1<CR>tagname2<CR>...
  1545. where N is the number of tags in the list.
  1546.  
  1547. * fonts = GetPSFontsUsed([page])
  1548. This function returns: (N)<CR>font1<CR>font2<CR>... where N is the number
  1549. of fonts used. The actual PostScript font names are used. If the optional
  1550. page identifier is included, the list will include only the fonts used on
  1551. the specified page; otherwise, the entire document is searched.
  1552.  
  1553. * numsaves = GetRevision()
  1554. Returns document revision number as confined in the information box.
  1555.  
  1556. * call SetRevision(integer)
  1557. Sets the revision number in the Information box to integer.
  1558.  
  1559. * state, requester = GetState()
  1560. Use this command to determine the current state of Professional Page. A
  1561. value between 0 and 17 will be returned depending on which aspect of the
  1562. program is active. The state values are as follows:
  1563.  
  1564.      NULL            = 0         Bezier Draw       =  9
  1565.      CreateBox       = 1         Freehand Draw     = 10
  1566.      Group Select    = 2         Polygon Draw      = 11
  1567.      Text Editing    = 3         Facing Pages      = 12
  1568.      Link Box        = 4         Thumbnail Pages   = 13
  1569.      Unlink Box      = 5         Moving Box        = 14
  1570.      Line Draw       = 6         Cropping Box      = 15
  1571.      Rectangle Draw  = 7         Scrolling Screen  = 16
  1572.      Circle Draw     = 8         Printing          = 17
  1573.  
  1574. If a requester is active, the requester type is indicated by one of the
  1575. following values:
  1576.  
  1577.      None                        =  0
  1578.      File selector               =  1
  1579.      Verify or Error             =  2
  1580.      ColorList1                  =  3
  1581.      ColorList2                  =  4
  1582.      Typeface List               =  5
  1583.      BitMap List                 =  6
  1584.      Unused                      =  7
  1585.      Style Tag List              =  8
  1586.      Paragraph Tag List          =  9
  1587.      Pantone Color List          = 10
  1588.      Text Filter List            = 11
  1589.      PostScript Font List        = 12
  1590.      EPSF File List              = 13
  1591.      Function Genie List         = 14
  1592.      List created by ARexx       = 15
  1593.      Enter Tracking              = 16
  1594.      Enter Baseline              = 17
  1595.      Enter Genie Name            = 18
  1596.      Enter Line Weight           = 19
  1597.      ARexx Get Text from user    = 20
  1598.      ARexx Enter box text        = 21
  1599.      UCR/GCR                     = 22
  1600.      Text Greeking               = 23
  1601.      ARexx Get user data         = 24
  1602.      Create Page from Default    = 25
  1603.      Alter Current Page          = 26
  1604.      Alter Even Template         = 27
  1605.      Alter Odd Template          = 28
  1606.      Alter Default Page          = 29
  1607.      Enter New Point Size        = 30
  1608.      Box Attributes              = 31
  1609.      Print to Dot Matrix         = 32
  1610.      Print to postScript         = 33
  1611.      Print Thumbnail             = 34
  1612.      Document information        = 35
  1613.      Hyphenation Parameters      = 36
  1614.      Find                        = 37
  1615.      Find/Replace                = 38
  1616.      Date/Page Formats           = 39
  1617.      Line Spacing                = 40
  1618.      PostScript Page Specs       = 41
  1619.      Color Palette               = 42
  1620.      Modify/Define Paragraph Tag = 43
  1621.      Modify/Define Style Tag     = 44
  1622.      Create Page from Template   = 45
  1623.      Layout Tools                = 46
  1624.  
  1625. * stylist = GetStyleTagList()
  1626.  
  1627. This function returns the Style Tag list in the following format:
  1628. (N)<CR>tagname1<CR>tagname2<CR>... where N is the number of tags in the
  1629. list.
  1630.  
  1631. * facelist = GetTypeFaceList()
  1632. This function returns the list of typefaces contained in the document
  1633. according to the following format: (N)<CR>face1<CR>face2<CR>... where N
  1634. is the number of typefaces in the list.
  1635.  
  1636. collist = GetColorList()
  1637. This function returns the list of colors used in the document according
  1638. to the following format: (N)<CR>color1<CR>color2<CR>... where N is the
  1639. number of colors in the list.
  1640.  
  1641. call New()
  1642. Behaves exactly as does selecting the menu item Project/New.
  1643.  
  1644. * totalboxes = NumBoxes([pgnm])
  1645. Returns the number of boxes in the document or, if the optional page
  1646. identifier is supplied, the number of boxes on that page.
  1647.  
  1648. * totalpages = NumPages()
  1649. Returns the number of pages in the document.
  1650.  
  1651. * call Pause(secs)
  1652. Pauses for the number of seconds indicated by secs.
  1653.  
  1654. call PPageToBack()
  1655. This command sends the Professional Page screen to the back.
  1656.  
  1657. call PPageToFront()
  1658. This command will bring the Professional Page screen to the front.
  1659.  
  1660. call PPQuit()
  1661. Exits Professional Page (same as selecting the Project/Quit menu item).
  1662.  
  1663. * lastsave = SavedDate()
  1664. Returns the date of the last Save operation for this document.
  1665.  
  1666. call SetBatchMode(bool)
  1667. When this mode is set on (1), all requesters will be automatically
  1668. responded to with OK or Resume. When set off (0), all requesters will
  1669. appear in the normal fashion.
  1670.  
  1671. newlist = SortList(list, [dir], [case])
  1672. Sorts the specified list. The dir argument is 0 for descending and 1 for
  1673. ascending. The case argument is 0 for case insensitive, 1 for case
  1674. sensitive. List and Newlist both use the format: Item1<CR>Item2<CR>...
  1675.  
  1676. call UpdateScreen()
  1677. Redraws the screen.
  1678.  
  1679. * call Version()
  1680. Returns copyright notice along with the Professional Page version number.
  1681.  
  1682. User Interactive Functions:
  1683.  
  1684. * filespec = GetFileName(prompt, path, [filename])
  1685. This function brings up a file requester and returns the file specifier.
  1686. If the user cancels the requester, an empty string is returned.
  1687.  
  1688. * manylines = GetForm (title, strlen, form)
  1689. This function will return a formatted string containing multiple lines of
  1690. user input. The title string will appear in the requester's drag bar. The
  1691. length of the requester's string gadgets are specified by strlen. The
  1692. formatted string is defined by form. If you wish, you may also use form
  1693. to fill the string gadgets with suggested or recommended data; eg.,
  1694. Prompt1:suggest1<CR>Prompt2:suggest2<CR>...
  1695.  
  1696. An example of the use of GetForm, taken from the StepAndRepeat Genie, is
  1697. shown below:
  1698.  
  1699. cr = '0a'x
  1700. form = "count"cr"horizontal offset"cr"vertical offset"cr"angle"
  1701. form = ppm_GetForm("Step and Repeat",8,form)
  1702. if form = '' then exit_msg("Operation cancelled")
  1703. parse var form count '0a'x horizontal '0a'x vertical
  1704. '0a'x angle
  1705.  
  1706. * userinput = GetUserText(integer,prompt)
  1707. Gets a single line of input from the user using prompt as a directive to
  1708. the user and using a buffer size of integer.
  1709.  
  1710. * choiceint = Inform(numbuttons, text, [button1txt],
  1711. [button2txt], [button3txt])
  1712. this function allows you to inform the user of text, to offer the user up
  1713. to three choices and to have the user's response returned. The numbuttons
  1714. parameter is one of 1/2/3. If no button text is specifed, a value of 1
  1715. will use resume for the button text and a value of 2 will use Yes and No.
  1716. Note that the first button is positioned in the lower right of the dialog
  1717. box, the second to the left of the first and the third to the left of the
  1718. second. The function returns -1 if there is an error, 0 if the first
  1719. (rightmost) button is clicked, 1 if the second, and 2 if the third.
  1720.  
  1721. * call ShowStatus(text)
  1722. Displays text on the Professional Page title bar. This function can be
  1723. used to prompt the user for mouse clicks, etc.
  1724.  
  1725. * call ClearStatus()
  1726. Restores the title bar to the normal Professional Page title.
  1727.  
  1728. whichbox = ClickOnBox(prompt)
  1729. Displays prompt and waits for the user to click the left mouse button and
  1730. returns the boxID of the user-selected box. This allows Genies to operate
  1731. on user-selected boxes without having to know the boxname or boxID. The
  1732. function will return 0 if the user clicks on a location that is not
  1733. contained within a box. A number of the Function Genies use this technique
  1734. to terminate multiple box selection.
  1735.  
  1736. * call SaveText(file, text)
  1737. Creates a file and saves text into it.
  1738.  
  1739. * call SaveMoreText(file, text)
  1740. Appends the given text to an existingfile.
  1741.  
  1742. clickspot = GetClickPosition(prompt)
  1743. Displays prompt to the user and returns the X-Y position of the location
  1744. on page where the user clicked.
  1745.  
  1746. * chosen = SelectFromList(title, width, height (in
  1747. lines), mode (0 or 1), list)
  1748. A method of offering the user a list of multiple choices and receiving the
  1749. response. Width is the width of the list in characters, height is the
  1750. height in lines. When mode is 0, only a single choice is returned; i.e.
  1751. items are mutually exclusive. When mode is 1, the user can make multiple
  1752. choices and items toggle on and off when selected. Both list and chosen
  1753. are lists in the form of: Item1<CR>Item2<CR>... The first element in list
  1754. will be pre-selected and the list will be sorted.
  1755.  
  1756.  
  1757. Page Operations:
  1758.  
  1759. * cpage = CurrentPage()
  1760. Returns the page number of the current page.
  1761.  
  1762. * logpage = LogicalPage([page])
  1763. Returns the logical page number of the specified sequential page (if
  1764. supplied); otherwise returns logical page number of the current page.
  1765.  
  1766. * fpage = DocFirstPage()
  1767. This function returns 0 if the document contains no pages; otherwise,
  1768. returns 1.
  1769.  
  1770. * npage = DocNextPage([page])
  1771. Returns the page number of the document page following the indicated one
  1772. or, if page is not supplied, the page after the current page.
  1773.  
  1774. * lpage = DocLastPage()
  1775. Returns the page number of the last page of the document.
  1776.  
  1777. newpage = GotoPage([page])
  1778. Sets the current page to page.
  1779.  
  1780. page = PageUp()
  1781. Displays the next page of the document (like using the Page Up gadget).
  1782.  
  1783. page = PageDown()
  1784. Displays the previous page of the document (like using the Page Down
  1785. gadget).
  1786.  
  1787. page = CreatePage(fromnumber, tonumber, from, [autolink], [lock])
  1788. Creates pages which are inserted atfromnumber up to tonumber. Returns
  1789. the page number of the first page created. The from parameter can be one
  1790. of four choices (0/1/2/3): default page, page number template, even
  1791. template or odd template. The optional autolink and lockparameters can
  1792. be 0 or 1 and correspond to the buttons in the Create Page requester.
  1793.  
  1794. numgone = DeletePage([startpage], [numdel])
  1795. Deletes numdel pages starting from startpage. Returns the number of
  1796. pages deleted. With no parameters, deletes current page only.
  1797.  
  1798. numcopies = CopyPage(pgnm, pgnm2, [num])
  1799. Insert num copies of pgnm before pgnm2. Returns number of pages created.
  1800.  
  1801. bool = MakeTemplate(pagenum, whichtemp)
  1802. Copies pagenum to whichtemp; even if 0, odd if 1.
  1803.  
  1804. newpage = MovePage(pgnm, pgnm2)
  1805. Moves pgnm to the position before pgnm2 and returns the resulting page
  1806. number.
  1807.  
  1808. Page Parameters:
  1809.  
  1810. These functions set and get page parameters which are normally accessed
  1811. through the Page/Create requesters.
  1812.  
  1813. col&gutter = GetPageColumns([pgnm])
  1814. Returns the number of columns and the gutter size on the specified page
  1815. or on the current page.
  1816.  
  1817. call SetPageColumns(pgnm, numcols, gutter)
  1818. Sets the number of columns and gutter size for the indicated page.
  1819.  
  1820. pmargs = GetPageMargins([pgnm])
  1821. Returns the margins of the specified page or the current page as "left
  1822. top right bottom".
  1823.  
  1824. call SetPageMargins(pgnm, left, top, right, bottom)
  1825. Sets the margins for the specified page.
  1826.  
  1827. pname = GetPageName([pgnm])
  1828. Returns the name of the specified page or the current page.
  1829.  
  1830. call SetPageName(pgnm, name)
  1831. Assigns a name to a specific page.
  1832.  
  1833. poffset = GetPageOffset([pgnm])
  1834. Returns the page number offset of the specified page or the current page.
  1835.  
  1836. call SetPageOffset(pgnm, offset)
  1837. Sets the page number offset for the specified page. Offset is one of:
  1838. +n/-n/n. The page number offset is the data item contained in the Offset
  1839. string gadget of the Current Page Format requester that appears when you
  1840. select Page/Alter/Current from the menus. For more information, see the
  1841. Professional Page User's Guide (pg. 173).
  1842.  
  1843. call SetPagePosition(x, y)
  1844. Places position x,y of the page to the upper left of the screen, if
  1845. possible.
  1846.  
  1847. psize = GetPageSize([pgnm])
  1848. Returns the size of the specified page or the current page.
  1849.  
  1850. call SetPageSize(pgnm, Xsize, Ysize)
  1851. Sets the dimensions of the indicated page.
  1852.  
  1853. ptype = GetPageType([pgnm])
  1854. Returns the type of the specified page or the current page. Ptype is one
  1855. of 0/1/2/3/4/5/6, corresponding to Custom, STD, LEGAL, A3, A4, A5 and A6.
  1856.  
  1857. call SetPageType(pgnm, ptype)
  1858. Sets the type of the specified page. Ptype is as described above.
  1859.  
  1860. Page PostScript Output Specs:
  1861.  
  1862. These functions set and get page parameters which are accessed through the
  1863. Output Page Specfications requester which appears when you click the
  1864. Postscript Output Specs button in the New Page Format requester.
  1865.  
  1866. pspsize = GetPSPageSize()
  1867. Returns the output page size.
  1868.  
  1869. call SetPSPageSize(Xsize, Ysize)
  1870. Sets the PostScript page dimensions (output page size).
  1871.  
  1872. angle = GetPSOutputAngle([pgnm])
  1873. Returns the output angle of the specified page or the current page.
  1874.  
  1875. call SetPSOutputAngle(pgnm, angle)
  1876. Sets the output angle of the specified page.
  1877.  
  1878. cropdata = GetPSOutputCrop([pgnm])
  1879. For the current or specified page, returns the status of crop marks
  1880. (off or on), their length, open space and bleed.
  1881.  
  1882. call SetPSOutputCrop(pgnm, status (0 or 1), len, open, bleed)
  1883. For the specified page, sets whether crop marks are off or on (status),
  1884. the crop mark lengths, open space and bleed.
  1885.  
  1886. ejectstat = GetPSOutputEject([pgnm])
  1887. Returns the eject status (0 or 1) of the current page or the specified
  1888. page.
  1889.  
  1890. call SetPSOutputEject(pgnm, eject)
  1891. For the specified page, sets whether eject is off (0) or on (1).
  1892.  
  1893. orient = GetPSOutputOrient([pgnm])
  1894. Returns the orientation (0/1/2/3 corresponding to none, portrait,
  1895. landscape or center) for the specified page or the current page.
  1896.  
  1897. call SetPSOutputOrient(pgnm, orient)
  1898. Sets the orientation (see above) for the specified page.
  1899.  
  1900. pospage = GetPSOutputPosn([pgnm])
  1901. Returns the offset ofPS output for the specified page or the currentpage.
  1902.  
  1903. call SetPSOutputPosn(pgnm, Xpos, Ypos)
  1904. Sets the offset of PostScript oUtpUt for the specified page.
  1905.  
  1906. psscale = GetPSOutputScale([pgnm])
  1907. Returns the output scale of the specified page or the current page.
  1908.  
  1909. call SetPSOutputScale (pgnm, Xsize, Ysize)
  1910. Sets the output scale of the specified page.
  1911.  
  1912. Box Operations:
  1913.  
  1914. These functions set and get box parameters which are generally accessed
  1915. through the Active Box requester which appears when you select Alter/Active
  1916. from the Box menu.
  1917.  
  1918. * boxid = ArtFirstBox([bxnm])
  1919. Activates and returns the boxID of the first box in the article containing
  1920. bxnm.
  1921.  
  1922. * boxid = ArtLastBox([bxnm])
  1923. Activates and returns the boxID of the last box in the article containing
  1924. bxnm.
  1925.  
  1926. * boxid = ArtNextBox([bxnm])
  1927. Activates and returns the boxID of the next box in the article containing
  1928. bxnm. This allows traversal of an article's chain of boxes.
  1929.  
  1930. * boxid = DocFirstBox()
  1931. Activates and returns the boxID of the first box in the document. If
  1932. there are no boxes on any of the document pages, the artboard page is
  1933. checked next. A 0 is returned if there are no boxes anywhere.
  1934.  
  1935. * boxid = DocNextBox([bxnm])
  1936. Returns the boxID of the next box in the document. This is similar to
  1937. PageNextBox, except that this function will jump to the next page if there
  1938. are no more boxes on the page containing bxnm.
  1939.  
  1940. * boxid = PageFirstBox([page])
  1941. Activates the first box on page (or on the current page) and retums that
  1942. boxID.
  1943.  
  1944. * boxid = PageNextBox([bxnm])
  1945. Activ ates the box after bxnm on the same page and returns that boxID.
  1946. If there are no more boxes on the page, the function will return 0.
  1947.  
  1948. boxnum = BoxAtPosn(Xpos, Ypos, [pgnm])
  1949. Selects the box at position Xpos-Ypos and returns the box number or 0
  1950. if x is at that position. This can be used to select a box without a name,
  1951. or the same box on each page. If two or more boxes overlap at Xpos,Ypos,
  1952. the number of the uppermost box is returned.
  1953.  
  1954. call BoxChangePage(bxnm, pgnm)
  1955. Moves bxnm to the specified page at the same position that it had on its
  1956. original page.
  1957.  
  1958. * thisbox = BoxNum([bxnm])
  1959. Returns the boxID for the specified box bxnm or for the active box if
  1960. bxnm is omitted.
  1961.  
  1962. * bool = BoxOverlaps(bxnm, Xpos, Ypos)
  1963. Returns 1 if the specified box contains the point Xpos,Ypos; otherwise,
  1964. returns 0.
  1965.  
  1966. * seqpgnum = BoxPage(bxnm)
  1967. Returns sequential page number of the page containing the specified box.
  1968.  
  1969. call BoxtoBack([bxnm])
  1970. Pushes the specified (or current) box to the back.
  1971.  
  1972. call BoxtoFront([bxnm])
  1973. Brings the specified (or current) box to the front.
  1974.  
  1975. boxid = CloneBox(bxnm, deltaX, deltaY)
  1976. Clones a new box that is offset from the original box (bxnm) by the
  1977. amounts indicated by deltaX and deltaY the boxID of the newly-cloned box
  1978. is returned.
  1979.  
  1980. boxid = CreateBox(left, top, width, height, angle, [boxname])
  1981. Creates a new box with the supplied position, size and angle
  1982. specifications and returns the boxID of that box. You may optionally
  1983. assign boxname to this new box.
  1984.  
  1985. bool = DeleteBox([bxnm])
  1986. Deletes the specified bxnm (or the current box).
  1987.  
  1988. bool = DeleteContents([bxnm])
  1989. Deletes the contents of bxnm. If bxnm is part of an article chain, the
  1990. entire article is deleted.
  1991.  
  1992. boxid = DrawBez(x0, y0, x1, y1, x2, y2, [boxname])
  1993. The start point, midpoint and end point respectively of the curve are
  1994. specified by the numbered parameters. Optionally, you may supply a
  1995. boxname for the resultant box. Returns the boxID of the new box.
  1996.  
  1997. boxid = DrawEllipse(xc, yc, rx, ry, rot, [boxname])
  1998. The ellipse center is specified by xc and yc, the radius by rx and ry.
  1999. These correspond to the values displayed in the title bar while drawing
  2000. an ellipse manually. Optionally, you may supply a boxname for the
  2001. resultant box. Returns the boxID of the new box.
  2002.  
  2003. boxid = DrawLine(x0, y0, x1, y1, [boxname])
  2004. The starting point of the line is defined by x0 and y0; the ending point
  2005. by x1 and y1. Optionally, you may supply a boxname for the resultant box.
  2006. Returns the boxID of the new box.
  2007.  
  2008. boxid = DrawPoly(file, [boxname])
  2009. The specified file contains a data array consisting of X-Y pairs defining
  2010. each point of the polygon. Each vertex must be on a separate line and X
  2011. and Y must be separated by a space. Optionally, you may supply a boxname
  2012. for the resultant box. Returns the boxID of the new box.
  2013.  
  2014. boxid = DrawRect(X0, Y0, X1, Y1, [boxname])
  2015. The initial drawing point is indicated by X0 and Y0 and X1 and Y1 are the
  2016. coordinates of the diagonally opposite corner. Optionally, you may supply
  2017. a boxname for the resultant box. Returns the boxID of the new box.
  2018.  
  2019. tilt = GetBoxAngle([bxnm])
  2020. Returns the rotation angle of the specified (or current) box.
  2021.  
  2022. call SetBoxAngle(bxnm, angle)
  2023. Sets the indicated box to the specified angle. The angle is applied by
  2024. rotating around the box's center This will change the values ofbox left
  2025. and top.
  2026.  
  2027. status = GetBoxFrame([bxnm])
  2028. Returns the frame status (off or on) of the specified (or current) box.
  2029.  
  2030. call SetBoxFrame(bxnm, setting)
  2031. Sets the frame of the specified box off/on (0/1).
  2032.  
  2033. framdat = GetBoxFrameData([bxnm])
  2034. Returns the frame attributes for the specified box. The attributes
  2035. returned are in the format: linecolor fillcolor lineweight linepattern
  2036. fillpattern.
  2037.  
  2038. call SetBoxFrameData(bxnm, linecolor, fillcolor, linewt, linepat, fillpat)
  2039. Sets the frame attributes for the specified box. Linecolor and fillcolor
  2040. are color names and must be in the current color list. Linewt is in
  2041. points. Linepat and fillpat are pattern numbers corresponding to the
  2042. positions of the patterns in the Draw menu.
  2043.  
  2044. status = GetBoxHide([bxnm])
  2045. Returns the Quick Display status of the specified (or current) box.
  2046.  
  2047. call SetBoxHide(bxnm, setting)
  2048. Clears/sets (0/1) Quick Display mode for the specified box.
  2049.  
  2050. info = GetBoxInfo([bxnm])
  2051.  
  2052. This function returns information about box contents. For a BitMap box,
  2053. the width, height, depth and filename are returned. For an EPSF box, the
  2054. file size and filename are returned. For a box containing a clip or
  2055. structured graphic, the number of objects,and memory usage are returned.
  2056. For textboxes, the article's box number, total number of article boxes,
  2057. buffer size and number of bytes of text actually contained within the
  2058. box are returned.
  2059.  
  2060. status = GetBoxLock([bxnm])
  2061. Returns the lock status of the specified (or current) box.
  2062.  
  2063. call SetBoxLock(bxnm, setting)
  2064. Sets the indicated box to unlocked/locked (0/1).
  2065.  
  2066. margins = GetBoxMargins([bxnm])
  2067. Returns the values for the left, top, right and bottom margins of the
  2068. specified (or current) box.
  2069.  
  2070. call SetBoxMargins(bxnm, left, top, right, bottom)
  2071. Sets the margins of the specified box to the supplied values.
  2072.  
  2073. * bname = GetBoxName([boxID])
  2074. Returns the boxname (if any) for the specified box or for the active box
  2075. if boxID is omitted. If no boxname is assigned to the box, an empty
  2076. string is returned.
  2077.  
  2078. * call SetBoxName(bxnm, name)
  2079. Sets the boxname for the box specified by bxnm.
  2080.  
  2081. offby = GetBoxOffset([bxnm])
  2082. Returns graphic offset value for the specified (or current) box.
  2083.  
  2084. call SetBoxOffset(bxnm, Xoffset, Yoffset)
  2085. Sets the graphic offset for the indicated box to Xoffset and Yoffset.
  2086.  
  2087. where = GetBoxPosition([bxnm])
  2088. Returns the values for the left, top of the specified (or current) box.
  2089.  
  2090. call SetBoxPosition(bxnm, left, top)
  2091. Sets the position of the box on the page to the position indicated by left
  2092. and top.
  2093.  
  2094. scaledto = GetBoxScale([bxnm])
  2095. Returns the X and Y graphic scale values for the specified (or current)
  2096. box.
  2097.  
  2098. call SetBoxScale(bxnm, Xscale, Y scale)
  2099. Sets the graphic scale factors for the indicated box to Xscale and Yscale.
  2100.  
  2101. howbig = GetBoxSize([bxnm])
  2102. Returns values for the width and height of the specified (or current) box.
  2103.  
  2104. call SetBoxSize (bxnm, width, height)
  2105. Sets the size of the specified box to the specified width and height.
  2106. No scaling factor is applied to any graphic contents.
  2107.  
  2108. standoff = GetBoxStandoff([bxnm])
  2109. Returns the text runaround standoff value of the specified (or current)
  2110. box.
  2111.  
  2112. call SetBoxStandoff(bxnm, standoff)
  2113. Sets the text runaround standoff value for the indicated box.
  2114.  
  2115. tabstring = GetBoxTabs([bxnm])
  2116. Returns the tabs that have been set for bxnm. Tabstring consists of
  2117. space-delimited values.
  2118.  
  2119. call SetBoxTabs (bxnm, tabstring)
  2120. This function will set the tab in bxnm to match tabstring, which must be
  2121. space-delimited; eg., tab1 tab2 tab3...
  2122.  
  2123. options = GetBoxTextWrap([bxnm])
  2124. Returns text wrap options (see below) of the specified (or current) box.
  2125.  
  2126. call SetBoxTextWrap(bxnm, type, side)
  2127. Sets the text wrap options for bxnm. Type is one of 0/1/2, corresponding
  2128. to none, rectangular and irregular. Side is one of 0/1/2/3, corresponding
  2129. to widest, left, right and exclude.
  2130.  
  2131. status = GetBoxTransparent([bxnm])
  2132. Returns the transparency of the specified (or current) box.
  2133.  
  2134. call SetBoxTransparent(bxnm, setting)
  2135. Clears/sets (0/1) the transparency of the specified box.
  2136.  
  2137. udata = GetBoxUserData(bxnm)
  2138. Returns the User Data field for bxnm (or the current box). Udata is an
  2139. integer in the range -2,000,000,000 to +2,000,000,000 (a 32-bit integer).
  2140.  
  2141. call SetBoxUserData(bxnm, data)
  2142. This function sets a User Data field in a box for use by Genies. Dat
  2143. can only be an integer in the range -2,000,000 to +2,000,000 (a 32-bit
  2144. integer). Professional Page does nothing with this data except maintain
  2145. it.
  2146.  
  2147. filtname = GetTextFilter
  2148. Returns the name of the active text filter.
  2149.  
  2150. call SetTextFilter(filtername)
  2151. Sets the active textfilter. The filtername must be supplied without the
  2152. path or the ".tf" extension; eg., "TransWrite".
  2153.  
  2154. worked = ImportAegis(bxnm, file)
  2155. Imports an Aegis Draw format drawing into an empty box (bxnm), returning
  2156. 1 if successfully loaded, 0 if an error has occurred.
  2157.  
  2158. worked = ImportBM(bxnm, file)
  2159. Imports a bitmap file into an empty box (bxnm), returning 1 if
  2160. successful, 0 if an error has occurred. The imported bitmap is scaled to
  2161. fit the box.
  2162.  
  2163. worked = ReloadBM(bxnm, file)
  2164. Same as ImportBM, but doesn't change the graphic scale or offset.
  2165. Returns 1 if successful, 0 if there has been an error.
  2166.  
  2167. worked = ImportClip(bxnm, clipname, [file])
  2168. This function imports the Professional Draw clip clipname to be found
  2169. infile. Returns 1 for success, 0 if there has been an error.
  2170.  
  2171. worked = ImportEPSF(bxnm, file)
  2172. Imports an EPSF file into an empty box (bxnm), returning 1 for success,
  2173. 0 if there has been an error.
  2174.  
  2175. worked = ImportText(bxnm, file)
  2176. Flows a textfile into an empty box (bxnm), returning 1 if the operation is
  2177. successful, 0 if there has been an error.
  2178.  
  2179. bool = LinkBox(bx1, bx2)
  2180. This function will link bx1 to bx2. In order for this to succeed, bx2
  2181. must be empty, bx1 must be the end of an article chain or empty. The text
  2182. overflow status is returned; i.e. 0 is returned if all text fits into the
  2183. boxes, 1 if some text overflows the boxes.
  2184.  
  2185. boxid = UnlinkBox([bxnm])
  2186. This function will break the article link of bxnm, causing bxnm to
  2187. become the first box of the remainder of the article.
  2188.  
  2189. boxid = SelectBox([bxnm])
  2190. Returns the boxID of the named box and makes that box the active box.
  2191. This differs from BoxNum in that this function activates the box.
  2192.  
  2193. Text Operations:
  2194.  
  2195. These are functions that are used to access and change the text
  2196. associated with a text box.
  2197.  
  2198. * char = CursorUp()
  2199. Moves the cursor up and returns the character after the cursor.
  2200.  
  2201. * char = CursorDown()
  2202. Moves the cursor down and returns the character after the cursor.
  2203.  
  2204. * char = CursorLeft()
  2205. Moves the cursor left and returns the character after the cursor.
  2206.  
  2207. * char = CursorRight()
  2208. Moves the cursor right and returns the character after the cursor.
  2209.  
  2210. * char = CursorChar()
  2211. Returns the character after the cursor.
  2212.  
  2213. * success = Cut()
  2214. Cuts the highlighted block, returning 1 if anything was cut.
  2215.  
  2216. * success = Copy()
  2217. Copies the highlighted block, returning 1 if anything was copied.
  2218.  
  2219. * success = Paste()
  2220. Pastes text at the current cursor position, returning 1 if anything was
  2221. pasted.
  2222.  
  2223. * call EditWithAE()
  2224. Sends the currently selected block or article to Article Editor for
  2225. editing.
  2226.  
  2227. * boxid = SetEdit(bxnm)
  2228. Selects a box for text editing, positioning the cursor at the first
  2229. character of the box. Returns the ID of the box selected.
  2230.  
  2231. * call EndEdit()
  2232. Exits Text Edit mode, returning to Null Pointer mode.
  2233.  
  2234. * found = Find(text, [direction], [case])
  2235. Performs a Find operation from the current cursor position. Direction
  2236. is 0 for down, 1 for up. Case is 1 to ignore case, 0 to match case. Found
  2237. text will be selected as a block. Returns 1 if found, 0 otherwise.
  2238.  
  2239. * howmany = Replace(txt1, txt2,[direction], [case], [global], [query])
  2240. Replaces txt1 with txt2. Direction and case are as above for Find. Global
  2241. is 1 for all occurrences, 0 for next occurrence only. Query is 1 to
  2242. request confirmation, 0 for no query. Returns the number of replacements.
  2243.  
  2244. * found = FindNext()
  2245. Finds the next occurrence of the text set by Find. Returns 1 if found.
  2246.  
  2247. * replaced = ReplaceNext()
  2248. Replaces next occurrence of the 'find' text with the 'replace' text (as
  2249. set by Replace). Returns 1 if replaced.
  2250.  
  2251. arttxt = GetArticleText([bxnm], [typo])
  2252. Returns the text of the article containing the indicated (or current)
  2253. box. If typo is 1, the function will output the backslash-encoded
  2254. typography codes as well, with a tiling "\".
  2255.  
  2256. * blocktxt = GetBlockText([typo])
  2257. Similar to a Block Save, but the highlighted text is returned. If typo
  2258. is 1, the function will output the backslash-encoded typography codes a
  2259. well, with a tiling "\".
  2260.  
  2261. boxtxt = GetboxText([bxnm], [typo])
  2262. Returns the text contained in the indicated (or current) box. If typo
  2263. is 1, the function will output the backslash-encoded typography codes
  2264. as well, with a trailing "\".
  2265.  
  2266. * success = InsertFile(file)
  2267. Inserts the text from file at the current cursor position.
  2268.  
  2269. * success = InsertText(text)
  2270. Inserts text at the current cursor position.
  2271.  
  2272. * call SelectAllText()
  2273. Set a block containing all text in the article.
  2274.  
  2275. * call SelectBoxText()
  2276. Set block to all text currently in box.
  2277.  
  2278. * call UnBlock()
  2279. Deselects the current block.
  2280.  
  2281. overflow = TextIntoBox(bxnm, [text])
  2282. Flows text into the empty box indicated by bxnm. When text is omitted,
  2283. the user is presented with a string requester. Returns the text overflow
  2284. status (see TextOverflow, below).
  2285.  
  2286. * overflow = TextOverflow([bxnm])
  2287. Returns 0 or 1 to indicate the overflow status of the indicated (or
  2288. current) box. If all text fits into the boxes of the article containing
  2289. bxnm, a 0 is returned. A 1 is returned if text overflows.
  2290.  
  2291. Group Operations:
  2292.  
  2293. call AddToGroup([bxnm])
  2294. Adds a box to the group; like Shift-click.
  2295.  
  2296. call DropFromGroup([bxnm])
  2297. Rewoves a box from the group; like Ctrl-click.
  2298.  
  2299. rect = GetGroupRect()
  2300. Returns left, top, width, and height of the bounding box around the
  2301. current group.
  2302.  
  2303. boxid = GroupFirstBox()
  2304. Returns the boxID of the first box in the group.
  2305.  
  2306. boxid = GroupNextBox([bxnm])
  2307. Returns the boxID of the next box in the group. This allows a Genie to
  2308. scan all boxes in a group.
  2309.  
  2310. call MergeGroup([boxname])
  2311. Merges all Professional Page structured graphics in the group, returning
  2312. the boxID of the new box.
  2313.  
  2314. call NewGroup()
  2315. Forgets the current group to prepare for the creation of a new one.
  2316.  
  2317. PPage Parameter Settings:
  2318.  
  2319. * degree = GetAngleStep()
  2320. Returns the step angle for use with interactive rotation.
  2321.  
  2322. * call SetAngleStep(degree)
  2323. Sets the step angle for use with interactive rotation.
  2324.  
  2325. * shiftamt = GetBaseline()
  2326. Returns the current baseline shift value in points.
  2327.  
  2328. * call SetBaseline(val)
  2329. Sets the baseline shift value (in points) to the position indicated by
  2330. val.
  2331.  
  2332. * outstatus = GetBoxOutlines()
  2333. Returns box outline display status.
  2334.  
  2335. * call SetBoxOutlines(status)
  2336. Makes box outlines invisible/visible (0/1).
  2337.  
  2338. * colordef = GetColorData(colname)
  2339. Returns the slash-coded color definition of the specified color name.
  2340.  
  2341. * success = DefineColor(colordefn)
  2342. Colordefn is a slash-coded color definition (refer to Appendix C in the
  2343. Professional Page User's Guide). The return is one of: 0 for an error, 1
  2344. for a successful new definition, or a number greater than 1 for indicating
  2345. that the new definition replaced an existing definition.
  2346.  
  2347. cm = GetColorMode()
  2348. Returns the current status of the Professional Page screen's color mode.
  2349.  
  2350. cm = SetColorMode(status)
  2351. Sets Color mode to 0 or 1, corresponding to Color, B&W. This function
  2352. returns the status that has been set or, if the operation fails, the
  2353. current status.
  2354.  
  2355. * colstatus = GetColllmns()
  2356. Returns the column display status.
  2357.  
  2358. * call SetColumns(status)
  2359. Turns column display on/off (0/1).
  2360.  
  2361. * datetype = GetDateFormat()
  2362. Returns the current date format. Datetype is either the European style
  2363. (0 = dd/mm/yy) or the American style (1 = mm/dd/yy).
  2364.  
  2365. * call SetDateFormat(type)
  2366. Sets the date format as defined above.
  2367.  
  2368. dm = GetDitherMode()
  2369. Returns the current color dithering mode.
  2370.  
  2371. dm = SetDitherMode(mode)
  2372. Mode is one of 0/1/2 corresponding to Smooth, Non-interlaced, Flicker
  2373. Free.
  2374.  
  2375. color = GetFillcolor()
  2376. Returns the currently selected fill color.
  2377.  
  2378. call SetFillColor (colname)
  2379. Sets the color for fills. Colname must be the name of a color defined
  2380. in the current color list.
  2381.  
  2382. num = GetFillPattern()
  2383. Returns the currently selected fill pattern.
  2384.  
  2385. call SetFillpattern(num)
  2386. Sets the fill pattern by number. Fill patterns we shown when you
  2387. highlight the Draw/Fill Pattern menu item. The patterns, corresponding
  2388. numbers we 1-8, top to bottom. A value of 0 for num signifies no fill.
  2389.  
  2390. * fontname = GetFont()
  2391. Returns the name of the currently selected font.
  2392.  
  2393. * call SetFont(fontname)
  2394. Sets the current font, returning 1 for success, 0 for error.
  2395.  
  2396. * gstatus = GetGrid()
  2397. Returns grid status.
  2398.  
  2399. * call SetGrid(status)
  2400. Clears or sets (0/1)the grid.
  2401.  
  2402. * gsize = GetGridSize()
  2403. Returns grid size (x,y).
  2404.  
  2405. * call SetGridSize(Xsize, Ysize)
  2406. Sets the size of the grid.
  2407.  
  2408. * snap = GetGridSnap()
  2409. Returns snap-to-grid status.
  2410.  
  2411. * call SetGridSnap(status)
  2412. Clews/sets (0/1) snap-to-grid.
  2413.  
  2414. * hypheni s = GetHyphenation()
  2415. Returns the current hyphenation mode.
  2416.  
  2417. * call SetHyphenation(status)
  2418. Turns hyphenation off/on (0/1)
  2419.  
  2420. * chars = GetHyphenControl()
  2421. Returns the number of characters permissible before and after the hyphen.
  2422.  
  2423. * call SetHyphenControl(head, tail)
  2424. Sets the number of characters permissible before and after the hyphen.
  2425.  
  2426. * num = GetHyphenLang()
  2427. Returns one of 0/1/2 corresponding to English/second language/third
  2428. language. See the Preferences/Hyphenation Control menu item for the
  2429. available languages in your version of Professional Page.
  2430.  
  2431. * call SetHyphenLang(num)
  2432. Num is one of 0/1/2 corresponding to English/second language/third
  2433. language.
  2434.  
  2435. * success = LoadHyphenDict(file)
  2436. Load the hyphenation exception dictionary, returning 1 for success, 0
  2437. for error.
  2438.  
  2439. * call ClearHyphenDict()
  2440. Removes the hyphenation exception dictionary from memory.
  2441.  
  2442. il = GetInterlace()
  2443. Returns the current status of the Professional Page screen's Interlace
  2444. option.
  2445.  
  2446. il = SetInterlace(status)
  2447. Sets interlace on/off (0/1). This function returns the status that has
  2448. been set or, if the operation fails, the current status.
  2449.  
  2450. ir = GetInterrupt()
  2451. Returns the current status of the Interruptible Refresh option.
  2452.  
  2453. ir = SetInterrupt(status)
  2454. Sets Interruptible Refresh off/on (0/1).
  2455.  
  2456. * justhow = GetJustification()
  2457. Returns the type of justification as 0/1/2/3 corresponding to left,
  2458. right, center or flush.
  2459.  
  2460. * call SetJustification(type)
  2461. Sets the justification mode to left, right, center Or flush corresponding
  2462. to a type of 0/1/2/3.
  2463.  
  2464. * kernis = GetKerning()
  2465. Returns the kerning on/off status.
  2466.  
  2467. * call SetKerning(status)
  2468. Clears/sets (0/1) kerning.
  2469.  
  2470. color = GetLineColor()
  2471. Returns the currently selected line color.
  2472.  
  2473. call SetLineColor(colname)
  2474. Sets the color for lines. Colname must be the name of a color defined.
  2475. in the current color list.
  2476.  
  2477. num = GetLinePattern()
  2478. Returns the currently selected line pattern.
  2479.  
  2480. call SetLinePattern(num)
  2481. Sets the line pattern by number. Line patterns are shown when yo
  2482. highlight the Draw/Line pattern menu item. The patterns, corresponding
  2483. numbers are 1 -9, top to bottom.
  2484.  
  2485. * string = GetLineSpacing()
  2486. Returns type (0/1/2 corresponding to leading, fixed and relative) and
  2487. value of current line Spacing.
  2488.  
  2489. * call SetLineSpacing(type, val)
  2490. Sets the manner and mount of line spacing. Type is one of 0/1/2
  2491. corresponding to leading, fixed and relative.
  2492.  
  2493. val = GetLineWeight()
  2494. Returns the currently selected line weight in points.
  2495.  
  2496. call SetLineWeight(val)
  2497. Sets the line stoke weight (in points).
  2498.  
  2499. * percent = GetMagMode()
  2500. Returns the current magnification percentage.
  2501.  
  2502. * call SetMagMode(percent)
  2503. If percent is not one of the offered magnification percentages, the next
  2504. lowest magnification percentage is used.
  2505.  
  2506. * numtype = GetPageNumFormat()
  2507. Returns the current numeric format for pagenumbers. Numtype will be
  2508. one of 0/1/2 corresponding to arabic/ROMAN/roman.
  2509.  
  2510. * call SetPageNumFormat(type)
  2511. Sets the manner of indicating page numbers for automatic page numbering.
  2512. Type is one of 0/1/2 corresponding to arabic/ROMAN/roman.
  2513.  
  2514. * ptag = GetParaTag()
  2515. Returns the name of the current paragraph tag.
  2516.  
  2517. * call SetParaTag(tagname)
  2518. Sets the paragraph tag to tagname. Tagname must be the name of a paragraph
  2519. tag defined in the current paragraph tag list.
  2520.  
  2521. * paradef = GetParaTagData(tagname)
  2522. Returns the slash-coded definition for the named paragraph tag.
  2523.  
  2524. * call DefineParaTag(paradefn)
  2525. Paradefn is a slash-coded paragraph tag definition (refer to Appendix 
  2526. in the main manual). The return is one of: 0 for error, 1 for success, or
  2527. a number greater than 1 for indicating that the new definition replaced
  2528. an existing definition.
  2529.  
  2530. qm = GetQuickMove()
  2531. Returns the current status of the Quick Move option.
  2532.  
  2533. qm = SetQuickMove(status)
  2534. Clears/sets (0/1) Quick Move mode. This function returns the status that
  2535. has been set or, if the operation fails, the current status.
  2536.  
  2537. * rstatus = GetRuler()
  2538. Returns ruler status.
  2539.  
  2540. * call SetRuler(status)
  2541. Turns ruler display off/on (0/1)
  2542.  
  2543. * measure = GetRulerType()
  2544. Returns ruler type. Type is one of 1/2/3/4 corresponding to 1/8", 1/6",
  2545. CM, PICA.
  2546.  
  2547. * call SetRulerType(type)
  2548. Type is as described above.
  2549.  
  2550. * fsize = GetSize()
  2551. Returns the current point size.
  2552.  
  2553. * sizeset = SetSize(size)
  2554. Sets the current point size, returning the size actually set.
  2555.  
  2556. * fstyle = GetStyle()
  2557. Returns the current text style as a string (described below).
  2558.  
  2559. * call SetStyle(style)
  2560. Sets one or more of B/I/U/O/N corresponding to bold, italic, underline,
  2561. outline and normal (plain). If more than one style is set, no spaces are
  2562. included in the string; eg. "BIU" indicates bold italic underline.
  2563.  
  2564. * stag = GetStyleTag()
  2565. Returns the current style tag.
  2566.  
  2567. * call SetStyleTag(tagname)
  2568. Sets the style tag to tagname. Tagname must be the name of a style tag
  2569. defined in the current style tag list.
  2570.  
  2571. * styledef = GetStyleTagData(tagname)
  2572. Returns the slash-coded definition for the named style tag.
  2573.  
  2574. * call DefineStyleTag(styledefn)
  2575. Styledefn is a slash-coded style tag definition (refer to Appendix C in
  2576. the main manual). The return is one of: 0 for error, 1 for success, or an
  2577. integer greater than 1 for indicating that the new definition replaced an
  2578. existing definition.
  2579.  
  2580. * tcol = GetTextColor()
  2581. Returns the current text color.
  2582.  
  2583. * call SetTextColor(colname)
  2584. Sets the text color to colname. Colname must be the name of a color
  2585. defined in the current color list.
  2586.  
  2587. minmax = GetTextGreek()
  2588. Returns the minimum and maximum size for text greeking.
  2589.  
  2590. call SetTextGreek(min, max)
  2591. Sets the minimum and maximum size for text greeking.
  2592.  
  2593. * trackval = GetTracking()
  2594. Returns the current tracking value.
  2595.  
  2596. * call SetTracking(val)
  2597. Sets tracking to the amount specified by val.
  2598.  
  2599. * measure = GetUnits()
  2600. Returns type of units in use.
  2601.  
  2602. * call SetUnits(units)
  2603. Units is one of 1/2/3 corresponding to INCH, CM, PICA.
  2604.  
  2605. wf = GetWireframe()
  2606. Returns the current status of the Wire Frame option.
  2607.  
  2608. wf = SetWireframe(status)
  2609. Clears/sets (0/1) Wireframe Graphics mode. This function returns the status
  2610. that has been set or, if the operation fails, the current status.
  2611.  
  2612. wb = GetWorkbench()
  2613. Returns the current status of the Workbench open/close option.
  2614.  
  2615. wb = SetWorkbench(Status)
  2616. Attempts to close/open (0/1) Workbench. This function returns the status
  2617. that has been set or, if the operation fails, the current status.
  2618.  
  2619. Save and Load Operations:
  2620.  
  2621. * LoadColorData(file)
  2622. Loads the specified color definitions, returning the number of definitions
  2623. loaded.
  2624.  
  2625. * SaveColorData(file)
  2626. Saves the specified color definitions, returning the number of definitions
  2627. saved.
  2628.  
  2629. success = LoadDocument(file, [autoloadBMs], [verify])
  2630. Loads the specified file into Professional Page. AutoloadBMs is used to
  2631. specify whether bitmaps are to be loaded automatically or not (1/0).
  2632. Verify if document verify has changed since last save.
  2633.  
  2634. success = SaveDocument([file])
  2635. Performs a Save operation using the current name. If file is supplied,
  2636. a Save As operation is performed, renaming the document to file.
  2637.  
  2638. success = LoadPage(pgnm, file, [autoloadBMs])
  2639. Loads the page specified by file before page pgnm.
  2640.  
  2641. success = SavePage(pgnm, file)
  2642. Saves the specified page using file as the filename.
  2643.  
  2644. * totaltags = LoadParaTags(file)
  2645. Loads the specified paragraph tag list, returning the number of tags
  2646. loaded.
  2647.  
  2648. * totaltags = SaveParaTags(file)
  2649. Saves the current paragraph tags to a file, returning the number of tags
  2650. saved.
  2651.  
  2652. * totaltags = LoadStyleTags(file)
  2653. Loads the specified style tag list, returning the number of tags loaded.
  2654.  
  2655. * totaltags = SaveStyleTags(file)
  2656. Saves the current style tags to a file, returning the number of tags
  2657. saved.
  2658.  
  2659. Dot Matrix Printing:
  2660.  
  2661. These functions' parameters refer to items generally found in the Print to Dot
  2662. Matrix requester.
  2663.  
  2664. astring = GetAutotile()
  2665. Returns the off/on status of autotiling (0/1).
  2666.  
  2667. call SetAutotile(status)
  2668. Sets autotile mode off/on (0/1).
  2669.  
  2670. status = GetDMColorCorrect()
  2671. Returns 0 or 1 corresponding to Color Correction off and on.
  2672.  
  2673. call SetDMColorCorrect(status)
  2674. Sets color correction off/on (0/1).
  2675.  
  2676. mode = GetDMDither()
  2677. Returns the dithering mode which is one of 0/1/2 corresponding to Ordered,
  2678. Halftone and Floyd-Steinberg.
  2679.  
  2680. call SetDMDither(mode)
  2681. Sets the dithering mode for printing to one of 0/1/2 corresponding to
  2682. Ordered, Halftone and Floyd-Steinberg.
  2683.  
  2684. printres = GetDMDensity()
  2685. Returns the current setting of printing density. Valid settings are:
  2686. 1/2/3/4/5/6/7.
  2687.  
  2688. call SetDMDensity(dens)
  2689. Sets the printing density. Valid settings are: 1/2/3/4/5/6/7.
  2690.  
  2691. status = GetDMEject()
  2692. Returns the eject status, either off (0) or on (1).
  2693.  
  2694. call SetDMEject(status)
  2695. Sets eject off/on (0/1).
  2696.  
  2697. status = GetDMLandscape()
  2698. Returns the status of landscape printing, off/on (0/1).
  2699.  
  2700. call SetDMLandscape(status)
  2701. Sets landscape mode off/on (0/1).
  2702.  
  2703. astring = GetDMOffset()
  2704. Returns the page offset values.
  2705.  
  2706. call SetDMOffset(Xoffset, Yoffset)
  2707. Sets the page offset to the supplied values.
  2708.  
  2709. psize = GetDMPageSize()
  2710. Returns the output page size used for autotile printing.
  2711.  
  2712. call SetDMPageSize(x, y)
  2713. Sets the output page size used for autotile printing.
  2714.  
  2715. mode = GetDMPrintMode()
  2716. Returns the printing mode as one of 0/1/2 corresponding to B&W, Grey and
  2717. Color.
  2718.  
  2719. call SetDMPrintMode(mode)
  2720. Sets the printing mode to one of 0/1/2 corresponding to B&W, Grey and
  2721. Color.
  2722.  
  2723. mode = GetDMProof()
  2724. Returns the proof mode which is either 0 or 1 corresponding to Draft and
  2725. Final.
  2726.  
  2727. call SetDMProof(mode)
  2728. Sets the proof mode to either 0 Or 1 corresponding to Draft and Final.
  2729.  
  2730. astring = GetDMScale()
  2731. Returns the scaling factors for printing.
  2732.  
  2733. call SetDMScale (Xscale, Yscale)
  2734. Sets the scaling factors to the suppliedvalues.
  2735.  
  2736. call PrintPageDM(pgnm, [copies], [sync])
  2737. Prints the indicated page. One copy is produced unless a different copies
  2738. value is supplied. If sync is 1, the function returns only after printing
  2739. is complete. If sync is 0 for asynchronous printing, the function will
  2740. return immediately.
  2741.  
  2742. call PrintDocDM([copies], [sync])
  2743. Prints one (or more) copies of the entire document. If sync is 1, the
  2744. function returns only after printing is complete. If sync is 0 for
  2745. asynchronous printing, the function will return immediately.
  2746.  
  2747. postScript Printing:
  2748.  
  2749. The parameters for these functions refer to items found in the Print to
  2750. PostScript requester.
  2751.  
  2752. csinksdata = GetCSInks()
  2753. Returns data as with SetCSInks() for Process colours only.
  2754.  
  2755. call SetCSInks(k, y, m, c, [mech])
  2756. Indicates whether or not (1/0) to print the corresponding ink on color
  2757. separation output. Mechanical inks are either all on or all off.
  2758.  
  2759. csdata = GetCSParams()
  2760. Returns data as with SetCSParams() for Process colours only.
  2761.  
  2762. call setCSParams(KLPI, KAng, YLPI, YAng, MLPI, MAng,
  2763.                  CLPI, CAng, [MechAng], [MechLPI])
  2764. Sets colour separation densities and angles for black, yellow, magenta
  2765. and cyan; optionally for mechanical colors. MechAng and MechLPI will
  2766. apply to all mechanical colors.
  2767.  
  2768. auto = GetPSAutotile()
  2769. Returns the off/on (0/1) status of PostScript autotiling.
  2770.  
  2771. call SetPSAutotile(status)
  2772. Turns PostScript autotiling off/on (0/1).
  2773.  
  2774. status = GetPS8BitBM()
  2775. Returns 0 or 1 corresponding to the off/on status of 8-bit bitmaps.
  2776.  
  2777. call SetPS8BitBM(status)
  2778. Sets 8-bit bitmaps off/on (0/1).
  2779.  
  2780. epsf = GetPSEPSF()
  2781. Returns the off/on (0/1) status of EPSF mode.
  2782.  
  2783. call SetPSEPSF(status)
  2784. Sets EPSF format off/on (0/1).
  2785.  
  2786. fontdown = GetPSFontDownload()
  2787. Returns 0 or 1 corresponding to font downloading option off/on.
  2788.  
  2789. call SetPSFontDownload(status)
  2790. Disables/enables (0/1) font downloading.
  2791.  
  2792. manual = GetPSManFeed()
  2793. Returns the off/on (0/1) status of manual feed.
  2794.  
  2795. call SetPSManFeed(status)
  2796. Sets manual feed off/on (0/1).
  2797.  
  2798. mirror = GetPSMirror()
  2799. Returns 0 or 1 corresponding to the off/on status of Mirror printing.
  2800.  
  2801. call SetPSMirror(status)
  2802. Sets mirror printing off/on (0/1).
  2803.  
  2804. neg = GetPSNegative()
  2805. Returns 0 or 1 corresponding to the off/on status of Negative printing.
  2806.  
  2807. call SetPSNegative(status)
  2808. Sets negative printing off/on (0/1).
  2809.  
  2810. psover = GetPSOverride()
  2811. Returns 0 or 1 corresponding to the off/on status of Override Custom
  2812. Specs.
  2813.  
  2814. call SetPSOverride(status)
  2815. Turns Override Custom Specs off/on (0/1).
  2816.  
  2817. device = GetPSOutput()
  2818. Returns current PostScript output path; "PAR:", "SER:" or a filename.
  2819.  
  2820. call SetPSOutput(spec)
  2821. Sets PostScript output to be directed to spec; this is usually "SER:",
  2822. "PAR:" or a specified filename.
  2823.  
  2824. modetype = GetPSPrintMode()
  2825. Returns the PostScript print mode which is one of 1/2/3/4 corresponding
  2826. to B&W, Color PostScript, 3 Color and 4 Color.
  2827.  
  2828. call SetPSPrintMode(mode)
  2829. Sets the PostScript print mode as described above.
  2830.  
  2831. proofmode = GetPSProof()
  2832. Returns one of 0/1/2 corresponding to the modes of Draft, Proof and Final.
  2833.  
  2834. call SetPSProof(mode)
  2835. Sets the PS proof mode to one of 0/l/2 corresponding to Draft, Proof,
  2836. and Final.
  2837.  
  2838. rolldata = GetPSRollPaper()
  2839. Returns the status of the roll paper option and, if on, the width of the
  2840. paper.
  2841.  
  2842. call SetPSRollPaper(status, [width])
  2843. Sets RollPaper option off/on (0/1) and, optionally, the width of the
  2844. roll.
  2845.  
  2846. csdata = GetUCRGCR()
  2847. Returns the UCR threshold and GCR values as percentages.
  2848.  
  2849. call SetUCRGCR(ucrthres, gcr)
  2850. Sets the UCR threshold value and the GCR value. Both arguments are
  2851. expressed as a percentage.
  2852.  
  2853. success = PrintDocPS([copies], [sync])
  2854. Prints one or copies copies of the entire document. Returns 1 for success,
  2855. 0 for an error or premature abort (caused by the user clicking on the
  2856. STOP! button or by issuing an ARexx AbortPrint command). If sync is 1, the
  2857. function returns only after printing is complete. If sync is 0 for
  2858. asynchronous printing, the function will return immediately.
  2859.  
  2860. success = PrintPagePS(pgnm, [copies], [sync])
  2861. Prints one or copies copies of the current page. Returns 1 for success,
  2862. 0 for an error or premature abort (as described above). If sync is 1, the
  2863. function returns only after printing is complete. If sync is 0 for
  2864. asynchronous printing, the function will return immediately.
  2865.  
  2866. Thumbnail printing:
  2867.  
  2868. These functions correspond to items in the Print to Thumbnail requester.
  2869.  
  2870. thumbsize = GetThumbNum()
  2871. Returns one of 2/3/4/5 corresponding to the size of Thumbnail printing;
  2872. i.e., 2x2, 3x3, 4x4 and 5x5.
  2873.  
  2874. call SetThumbNum(num)
  2875. Sets the size of Thumbnail printing. Num is one of 2/3/4/5 corresponding
  2876. to 2x2, 3x3, 4x4 and 5x5.
  2877.  
  2878. success = PrintgocThumb([copies], [sync])
  2879. Prints one or copies copies of the entire document. If sync is 1, the
  2880. function returns only after printing is complete. If sync is 0 for
  2881. asynchronous printing, the function will return immediately.
  2882.  
  2883.  
  2884.                   Professional Page Quick Reference Card
  2885.                   --------------------------------------
  2886.  
  2887. KEYBOARD EQUIVALENTS
  2888. . Ax   Hold the right Amiga key and press key "x"
  2889. . ax   Hold the ALT key down and press key "x"
  2890. . cx   Hold the CONTROL key down and press key "x"
  2891. . sx   Hold the SHIFT key down and press key "x"
  2892. NOTE: Keyboard equivalents are CASE SENSITIVE!
  2893.  
  2894. Professional Page:
  2895. Project Menu
  2896. Project/New                             AN
  2897. Project/Open                            AO
  2898. Project/Save                            AS
  2899. Project/Save As                         AZ
  2900. Project/Information                     AI
  2901. Project/Import/Text                     AT
  2902. Project/Import/Bitmap Graphic           AG
  2903. Project/Import/Aegis Draw drawings      A=
  2904. Project/Import/Professional Draw Clip   AD
  2905. Project/Import/Encapsulated PostScript  AE
  2906. Project/Output/Dot Matrix               AM
  2907. Project/Output/PostScript               AP
  2908. Project/Output/Thumbnail                AX
  2909. Project/About                           AU
  2910. Project/Quit                            AQ
  2911.  
  2912. Page Menu
  2913. Page/Create/From Template               cT
  2914. Page/Create/From Default                cN
  2915. Page/Load/New Current                   cC
  2916. Page/Load/Even Template                 cE
  2917. Page/Load/Odd Template                  cO
  2918. Page/Save/Current                       sC
  2919. Page/Save/Even Template                 sE
  2920. Page/Save/Odd Template                  sO
  2921. Page/Delete                             cD
  2922. Page/Alter/Current                      aC
  2923. Page/Alter/Even Template                aE
  2924. Page/Alter/Odd Template                 aO
  2925. Page/Alter/Default                      aZ
  2926. Page/Make Template/Even                 sY
  2927. Page/Make Template/Odd                  sZ
  2928. Page/Visible                            cV
  2929.  
  2930. Box Menu
  2931. Box/Show Active                         aX
  2932. Box/Clone Active                        aK
  2933. Box/Delete Active                       sDEL
  2934. Box/Alter/Active                        aA
  2935. Box/Alter/Default                       aB
  2936.  
  2937. Group Menu
  2938. Group/Clone                             sK
  2939. Group/Delete                            cDEL
  2940. Group/Forget                            sG
  2941. Group/Align/Top                         sT
  2942. Group/Align/Bottom                      sQ
  2943. Group/Align/Left                        sJ
  2944. Group/Align/Right                       sR
  2945. Group/Center/Vertically                 sV
  2946. Group/Center/Horizontally               sH
  2947. Group/Center/Both                       sX
  2948. Group/Merge                             sA
  2949.  
  2950. Tag Menu
  2951. Tag/Style Tag/Add New                   sU
  2952. Tag/Style Tag/Modify                    sM
  2953. Tag/Style Tag/Delete                    sD
  2954. Tag/Style Tag/Load                      sL
  2955. Tag/Style Tag/Save                      sS
  2956. Tag/Paragraph Tag/Add New               aU
  2957. Tag/Paragraph Tag/Modify                aM
  2958. Tag/Paragraph Tag/Delete                aD
  2959. Tag/Paragraph Tag/Load                  aL
  2960. Tag/Paragraph Tag/Save                  aS
  2961.  
  2962. Type Menu
  2963. Type/Typeface/New                       AF
  2964. Type/Size/New                           A.(period)
  2965. Type/Style/Plain                        F10
  2966. Type/Style/Bold On                      F6
  2967. Type/Style/Bold Off                     sF6
  2968. Type/Style/Italics On                   F7
  2969. Type/Style/Italics Off                  sF7
  2970. Type/Style/Outline On                   F8
  2971. Type/Style/Outline Off                  sF8
  2972. Type/Style/Underline On                 F9
  2973. Type/Style/Underline Off                sF9
  2974. Type/Color                              AC
  2975. Type/Style Tag                          AA
  2976. Type/Paragraph Tag                      AV
  2977. Type/Kerning                            AK
  2978. Type/Tracking                           AW
  2979. Type/Line Spacing                       AY
  2980. Type/Baseline                           AB
  2981. Type/Hyphenation                        AH
  2982. Type/Justification/Left                 AL
  2983. Type/Justification/Right                AR
  2984. Type/Justification/Center               A-
  2985. Type/Justification/Flush                AJ
  2986.  
  2987. Edit Menu
  2988. Edit/Paste                              F1
  2989. Edit/Cut                                sF1
  2990. Edit/Copy                               cF1
  2991. Edit/Unmark Block                       sF5
  2992. Edit/Save Block                         F5
  2993. Edit/Select Box                         F4
  2994. Edit/Select All                         sF4
  2995. Edit/Find                               F2
  2996. Edit/Replace                            F3
  2997. Edit/Find Next                          sF2
  2998. Edit/Replace Next                       sF3
  2999. Edit/Article Editor                     A/
  3000.  
  3001. Draw Menu
  3002. Draw/Line Color                         sI
  3003. Draw/Fill Color                         sF
  3004. Draw/Line Weight/Custom                 sW
  3005.  
  3006. Preferences Menu
  3007. Preferences/Magnification/200%          A1
  3008. Preferences/Magnification/100%          A2
  3009. Preferences/Magnification/50%           A3
  3010. Preferences/Magnification/33%           A4
  3011. Preferences/Magnification/25%           A5
  3012. Preferences/Magnification/Facing Pages  A7
  3013. Preferences/Magnification/Thumbnail     A8
  3014. Preferences/Layout Tools                aT
  3015. Preferences/Page & Date Formats         aP
  3016. Preferences/Hyphenation Control         aH
  3017. Preferences/Text Greeking Control       aG
  3018. Preferences/Compugraphic Font Control   aF
  3019. Preferences/Quickmove                   aQ
  3020. Preferences/Wireframe Graphics          aW
  3021. Preferences/Black & White               aN
  3022. Preferences/Interlace Screen            aI
  3023. Preferences/Interruptible Refresh       aR
  3024. Preferences/Workbench Screen            aV
  3025.  
  3026. Other non-menu Shortcuts:
  3027. Box Lock Toggle                         cL
  3028. Box Impermeable Toggle                  c[
  3029. Box Quick Display Toggle                cX
  3030. Box Frame Toggle                        cF
  3031. Set Units to Inches                     cI
  3032. Set Units to Picas                      cP
  3033. Set Units to Centimeters                cM
  3034. Grid Toggle                             cG
  3035. Snap to Grid Toggle                     cS
  3036. Ruler Toggle                            cR
  3037. Box Outline Toggle                      cB
  3038. Column Toggle                           cK
  3039. Page Up                                 s>
  3040. Page Down                               s<
  3041. Box to Back                             sB
  3042. Box to Front                            s^
  3043. Next Linked Box                         sN
  3044. Previous linked Box                     sP
  3045. Thinspace                               aSPACE
  3046. EN space                                cSPACE
  3047. EM space                                sSPACE
  3048. Previous Page Number in Text            c1
  3049. Current Page Number in Text             c2
  3050. Next Page Number in Text                c3
  3051. Current Date in Text                    c4
  3052. Document Creation Date in Text          c5
  3053. Box Break - force text to next box      cRETURN
  3054. move Screen View up 1/5 screen          UP
  3055. Move Screen View up 4/5 screen          sUP
  3056. Move Screen View to top of Page         cUP
  3057. Move Screen View down 1/5 screen        DOWN
  3058. Move Screen View down 4/5 screen        sDOWN
  3059. Move Screen View to bottom of Page      cDOWN
  3060. Move Screen View left 1/5 screen        LEFT
  3061. Move Screen View left 4/5 screen        sLEFT
  3062. Move Screen View to left edge of Page   cLEFT
  3063. Move Screen View right 1/5 screen       RIGHT
  3064. Move Screen View right 4/5 screen       sRIGHT
  3065. Move Screen View to right edge of Page  cRIGHT
  3066. Increase Tracking in Text Edit mode     LEFT
  3067. Decrease Tracking in Text Edit mode     RIGHT
  3068. Increase Baseline in Text Edit mode     UP
  3069. Decrease Baseline in Text Edit mode     DOWN
  3070.  
  3071. Other Shortcuts in Professional Page:
  3072. Menu extended Select
  3073. Users making several menu selections at once can use extended select
  3074. by holding the right mouse button down and hitting the select mouse
  3075. button (left) over each desired menu selection.
  3076.  
  3077. Double Clicking
  3078. names in list requesters can generally be selected by double clicking
  3079. on the desired name. This has the same effect as clicking on the name
  3080. and then selecting "OK".
  3081.  
  3082. RETURN key.
  3083. Generally, when a requester asks for information to be typed in pressing
  3084. RETURN after the text will select the "OK" gadget on the requester.
  3085.  
  3086. SPACE screen refresh
  3087. When not in Text editing mode, hitting the SPACE bar will cause the
  3088. entire screen to be refreshed. This particulary useful in the
  3089. Preferences/Interruptible Refresh is on.
  3090.  
  3091. The Article Editor:
  3092. Project Menu
  3093. Project/Load                            AO
  3094. Project/Save                            AS
  3095. Project/Save As                         AZ
  3096. Project/Environment/Load Configuration  A=
  3097. Project/Environment/Save Configuration  A0
  3098. Project/Environment/Load Macros         A8
  3099. Project/Environment/Save Macros         A9
  3100. Project/WP/Import Document              A#
  3101. Project/WP/Export Document              A$
  3102. Project/Screen Format/Workbench         A%
  3103. Project/Screen Format/Med-Res           A^
  3104. Project/Screen Format/Interlace         A&
  3105. Project/Quit                            AQ
  3106.  
  3107. Edit Menu
  3108. Edit/Cut                                sF1
  3109. Edit/Copy                               aF1
  3110. Edit/Paste                              F1
  3111. Edit/Cut Word                           AW
  3112. Edit/Cut Sentence                       AE
  3113. Edit/Cut Paragraph                      AR
  3114. Edit/Cut Line                           AD
  3115. Edit/Clear Highlight                    sF5
  3116. Edit/Highlight All                      sF4
  3117. Edit/Instert File                       AT
  3118. Edit/Save Highlight Region              F5
  3119. Edit/Erase All Text                     A\
  3120.  
  3121. Commands Menu
  3122. Commands/Find/Replace                   F2 or F3
  3123. Commands/Search Again                   sF2 or sF3
  3124. Commands/Translate document             A"
  3125. Commands/Spell-Check Word               aF7
  3126. Commands/Spell-Check To End             aF8
  3127. Commands/Real Time Spell Check          aF9
  3128. Commands/Toggle Insert Mode             a3
  3129. Commands/Toggle Paragraph Marking       aM
  3130. Commands/Convert to Lower Case          AL
  3131. Commands/Convert to Upper Case          AU
  3132.  
  3133. Special Menu
  3134. Special/Set Options                     aF2
  3135. Special/Set Colors                      aF3
  3136. Spacial/Count Words                     aF4
  3137. Special/Analyze Document                A?
  3138. Special/Refresh Window                  sF10
  3139. Special/Join Single Lines               AJ
  3140. Special/Separate Lines                  A@
  3141. Special/Show PPage Codes                A6
  3142. Special/Hide PPage Codes                A7
  3143. Special/Send Text Home                  A/
  3144. Special/Line Spacing                    A+
  3145.  
  3146. Styles Menu
  3147. Styles/Bold Text                        F6
  3148. Styles/Italic Text                      F7
  3149. Styles/Underlined Text                  F9
  3150. Styles/Bold Off                         sF6
  3151. Styles/Italic Off                       sF7
  3152. Styles/Underlined Off                   sF9
  3153. Styles/Normal Text                      F10
  3154.  
  3155. Cursor Menu
  3156. Cursor/Top Of File                      cUP
  3157. Cursor/End Of File                      CDOWN
  3158. Cursor/Up Screen                        aUP
  3159. Cursor/Down Screen                      aDOWN
  3160. Cursor/Up Paragraph                     sUP
  3161. Cursor/Down Paragraph                   sDOWN
  3162. Cursor/Start of Line                    sRIGHT
  3163. Cursor/Previous Word                    aLEFT
  3164. Cursor/Next Word                        aRIGHT
  3165. Cursor/Center Cursor                    cC
  3166. Cursor/Restore Position                 scC
  3167.  
  3168. Other Article Editor Shortcuts
  3169. Begin Highlight Range                   aF5
  3170. End Highlight Range                     aF6
  3171.  
  3172.  
  3173. FORMATTING TEXT
  3174.  
  3175. Note that all formatting commands consists of a backslash (\) followed
  3176. by a number of codes. No space should be left between the backslash and
  3177. the code. Some codes are followed by a paramter, either a number (integer
  3178. or float) or a name giving further information. If a parameter is needed
  3179. type the less than sign (<), the number, and the closing greater than
  3180. sign (>). Note that the letter case of the formatting code is significant.
  3181. Some formatting codes must be terminated by the RETURN key.
  3182.  
  3183. Font:
  3184. ff<name>        font name
  3185. fs<integer>     pointsize(2->720)
  3186.  
  3187. Line Spacing:
  3188. lf<float>       linespacing fixed (points)
  3189. lr(integer)     linespacing relative (% of largest pt size)
  3190. ll<float>       linespacing leading (points)
  3191. ls<float>       baseline shift (points)
  3192.  
  3193. Justification:
  3194. jl              left justification
  3195. jr              right justification
  3196. jc              center justification
  3197. jf              flush justification
  3198.  
  3199. Paragraph:
  3200. pi              paragraph indent
  3201. po              paragraph oudent
  3202. pn              no paragraph indent
  3203. ps<integer>     paragraph spacing (% of line spacing)
  3204.  
  3205. Color:
  3206. c<name>         color
  3207.  
  3208. Styling:
  3209. B               bold on
  3210. b               bold off
  3211. I               italic on
  3212. i               italic off
  3213. U               underline on
  3214. u               underline off
  3215. O               outline on
  3216. o               outline off
  3217. n               plain text
  3218.  
  3219. Kerning & Tracking:
  3220. K               kerning on
  3221. k               kerning off
  3222. t<integer>      tracking (% of EM space)
  3223.  
  3224. Hyphenation:
  3225. H               hyphenation on
  3226. h               hyphenation off
  3227.  
  3228. Miscellaneous:
  3229. .               end of text
  3230. P               new paragraph
  3231. M               M space
  3232. N               N space
  3233. T               Thin space
  3234. s               TAB
  3235. -               soft hyphen
  3236.  
  3237. Comments:
  3238. ?<comment>
  3239.                 comment - these comments are ignored by Professional
  3240.                 Page and are there for your convenience only.
  3241.  
  3242. Page Number & Date:
  3243. #<option>       macro code for page number and date text insertion
  3244.      options are:
  3245.                 "Pp#" Page number of previous article box
  3246.                 "Pc#" Current page number
  3247.                 "Pn#" Page number of next article box
  3248.                 "Dc#" Creation date
  3249.                 "Dp#" Printing (Current) date
  3250.      where # is the format number:
  3251.                 1 -> 3 for page number
  3252.                 1 -> 2 for date format
  3253.  
  3254. Box Break:
  3255. !               Box break
  3256.  
  3257. Tags:
  3258. dS<name>        begin style tag <name>
  3259. ds              end style tag
  3260. dP<name>        begin paragraph tag <name>
  3261. dp              end paragraph tag
  3262.  
  3263. Color, Style Tag, Paragraph Tag definitions:
  3264. Imbedded codes can also be used to include definitions for colors, style
  3265. tags, and paragraph tags, imbedded in the text. To do this, use the
  3266. following codes:
  3267.  
  3268. Define Color:
  3269. DC<name{Cs<15,10,3>Cp<.4,1.0,.6,.0>FcMa<45.0>Md<3.6>}>
  3270. where the codes inside the {} brackets can be one or more of the
  3271. following:
  3272. Cs<integer,integer,integer>     screen color <red,green,blue>
  3273.                                 values are 0 -> 15
  3274. Cp<float,float,float>           printed colors
  3275.                                 <yello,magneta,cyan,black>
  3276.                                 values are 0.0 -> 100.0 (%)
  3277.      If r,g,b are not defined, they are calculated from y,m,c,k.
  3278.      If y,m,c,k are not defined, they are calculated from r,g,b.
  3279.      If neihter the above are defined, the color is black.
  3280. Fc              set custom color flag
  3281. Fm              set mechanical color flag
  3282. Fn              set no underground removal flag
  3283. Ma<float>       PostScript screen angle for mechanical color
  3284. Md<float>       postScript screen densiry for mechanical color
  3285.  
  3286. Define Style Tag:
  3287. DS<name{slash coded definition : \ff<Times>\fs<24>...{>
  3288. where the codes inside the {} brackets can be one or more of the standard
  3289. formatting codes (Note: you must include the \ character).
  3290. If any of the typographical fields is not defined, that attribute will
  3291. not be affected in the style tag.
  3292.  
  3293. Define Paragraph Tag:
  3294. DP<name{UiMl<1.0>Mr<1.0>Pi<2.0>Ps<100>Ts<.5>Ts<1.0>...}>
  3295. where the codes inside the {} brackets can be one or more of the
  3296. following:
  3297. Ui              units used in the paragraph definition is inches
  3298. Uc              units used in the paragraph definition is centimeters
  3299. Up              units used in the paragraph definition is picas
  3300. Ml<float>       left margin (see note below)
  3301. Mr<float>       right margin (see note below)
  3302. Mb              use box margins (default)
  3303. Pi<float>       paragraph indent and value
  3304. Po<float>       paragraph outdent and value
  3305. Pn              no paragraph indent
  3306. Ps<integer>     paragraph spacing
  3307. SW<integer>     maximum inter-word spacing
  3308. SC<integer>     maximum inter-character spacing
  3309. Ts<float>       define tab locations (up to 16 can be defined)
  3310. Tb              use box tabs (default)
  3311. If any of the above is not specified, default values will be used.
  3312. Note: the value used in MI & Mr can be in the form:
  3313.      <value>    value overrides box margins
  3314.      <+value>   add value to box margins
  3315.      <-value>   subtract value from box margins
  3316.  
  3317. end.
  3318.